gpt4 book ai didi

javascript - 在将 promise 动态传递给 .when() 的情况下,如何处理 promise 的 successCallBack 中的每个响应

转载 作者:行者123 更新时间:2023-11-28 08:30:03 25 4
gpt4 key购买 nike

以下是云函数,即“batchReq1”和batchPromises。

无论如何,如果我知道推送的 Promise 的确切数量(考虑函数 batchPromises(results) 中结果的大小为“2”)并通过 when() 执行,我可以通过传递该值来处理成功响应.then() 的 successCallBack 中结果参数的数量(在下面的示例中为 request1、request2)。

如果我必须动态处理推送到 .when() 的 promise 数量,那么我们如何在 SuccessCallBack 中处理这个问题?与之前的场景不同,我们不能期望 then 方法中有固定数量的结果 (batchPromises(results).then(function (result1, result2) {....)

batchReq1

Parse.Cloud.define("batchReq1", function (request, response) {

var results = request.params.imageArray;


batchPromises(results).then(function (result1, result2) {

console.log("Final Result:: Inside Success");

console.log("Final Result:: Inside Success result 1::::"+result1);
console.log("Final Result:: Inside Success result 2::::"+result2);

response.success();

}



// batchPromises(results).then(function (arraySuccess) {
//
// console.log("Final Result:: Inside Success");
// console.log("Final Result:: Inside Success:: Length:: "+arraySuccess.length);
// //Fetch all responses from promises and display
// var _ = require('underscore.js');
// _.each(arraySuccess, function (result) {
//
// console.log("Final Result:: " + result)
//
// });
//
//
// response.success();
//
// }



, function (error) {
console.log("Final Result:: Inside Error");
response.error(error);

});

});

批量 promise

function batchPromises(results) {

var promise = Parse.Promise.as();
var promises = [];


var increment = 0;
var isFromParallelExecution = false;


var _ = require('underscore.js');
_.each(results, function (result) {




var tempPromise = Parse.Promise.as("Promise Resolved ");
promises.push(tempPromise);
}


promise = promise.then(function () {

return Parse.Promise.when(promises);

});

}
increment++;
});

return promise;
}

最佳答案

这就是我处理这个问题的方式...

Parse.Cloud.define("xxx", function(request, response) 
{
var channels = ["channel1", "channel2", "channel3", "channel4", "channel5"];
var queries = new Array();

for (var i = 0; i < channels.length; i++)
{
var query = new Parse.Query(channels[i]);
queries.push(query.find());
}

Parse.Promise.when(queries).then(function()
{
var msg = "";
for (var j = 0; j < arguments.length; j++)
{
for (var k = 0; k < arguments[j].length; k++)
{
var object = arguments[j][k];
msg = msg + " " + object.get('somefield');
}
}
response.success(msg);
});
});

关于javascript - 在将 promise 动态传递给 .when() 的情况下,如何处理 promise 的 successCallBack 中的每个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21981637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com