简体   繁体   中英

How to define an array of promises and get an array of results using Parse.promise javascript [parse.com]

I'm trying to get an array of results from an array of promises. I'm able to define the array of promises by i'm not getting the array of results Below is my code

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;
 }

In my main call

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

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

            i++;
        }

I'm not able to get the results in array.

            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);
              }
        );

I've found the answer. console.log("arguments.length:"+arguments.length);

use arguments.

        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);
          }
    );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM