2014-12-23 15 views
0

我試圖從承諾數組中獲得結果數組。 我能夠通過我沒有得到結果 的陣列來定義承諾的陣列下面是我的代碼如何使用Parse.promise定義承諾數組並獲取結果數組javascript [parse.com]

function get_order_selection(order){ 
var itemList=[]; 
var promise = Parse.Promise.as(); 
var query = new Parse.Query("Order_Selection"); 
query.equalTo("order", order); 
query.include('wine'); 
promise = query.find().then(function(results) { 
    console.log("Order_Selection received for order.id: " + order.id + " result(s): " +results.length); 
    console.log(results); 

    var i = 0; 
    var size = results.length; 
    while(i<size){ 
     var name = results[i].get('wine').get('name'); 
     var unitPrice = results[i].get('unitPrice'); 
     var quantity = results[i].get('quantity'); 
     var smallURL = results[i].get('wine').get('small_picture').url(); 
     console.log("Order_Selection-> name: "+name+ " unitPrice: "+unitPrice+" quantity: "+quantity+" smallURL: "+smallURL); 
     var item = { 
      name: name, 
      unitPrice: unitPrice, 
      quantity: quantity, 
      smallURL: smallURL 
     } 
     itemList.push(item); 
     i++; 
    } 
    console.log("get_order_selection: itemList:"+itemList); 
    return itemList; 
}); 
return promise; 
} 

在我的主要電話

 var i = 0; 
     var size = results.length; 
     while(i<size){ 

      selection_query.push(get_order_selection(results[i])); 

      i++; 
     } 

我不能獲得數組中的結果。

  Parse.Promise.when(selection_query).then(
       function(results,results2,results3){ 
       console.log("Promise results"); 
       console.log("Promise results.length:"+results.length); 
       console.log("Promise results2.length:"+results2.length); 
       var responseJSON = {orders: orders_list}; 
       response.success(responseJSON); 
       } 
     ); 
+0

你能說明你是如何分配selection_query的嗎? –

回答

1

我找到了答案。 console.log(「arguments.length:」+ arguments.length);

使用參數。

 Parse.Promise.when(selection_query).then(
      function(results,results2,results3){ 
      console.log("arguments.length:"+arguments.length); 
      console.log("Promise results"); 
      console.log("Promise results.length:"+results.length); 
      console.log("Promise results2.length:"+results2.length); 
      var responseJSON = {orders: orders_list}; 
      response.success(responseJSON); 
      } 
    );