Come è possibile fare questa cosa con chiamate ASINCRONE? Con chiamate asincorne non riesco ad accedere all'oggetto, riesco solamente a stamparlo con console.log. grazie

codice:
function(){
	var resIDcat = [];	
	var resNMcat = [];
	var dat = $.ajax({
  		  type: 'GET',
		  async: false,
		  url: "http://localhost/api/categories/",		  
		  dataType: "json",
		  success: function(risposta){
			  resIDcat = risposta;
			  /******************/
			  for(var i=0; i<resIDcat.categories.length; i++){	
					$.ajax({
						type: 'GET',
						async: false,
						url: "http://localhost/api/categories/"+resIDcat.categories[i].id,						dataType: "json",


					}).done(function(cat){
						resNMcat.push(cat);						
						
						});
				}
			  
			  /******************/
			
		  },
		  error: function(){
		    alert("Chiamata fallita!!!");
		  }
		});		
	return resNMcat;		
		
	}