我已經編寫了基於Parse.com中提供的Parse示例的代碼來執行Series中的承諾。序列中的承諾沒有按順序執行
但是,好像順序處理工作不正常。
以下代碼通過系列承諾多次調用雲功能,即'sampleCloudFuction',但按順序排列。
執行循環後,應用程序將調用另一個js函數,該函數將加載剩餘的項目(不包括處理的項目)。
這是環路,多次調用雲功能:
var seriesPromise = new Parse.Promise.as();
$.each(items, function (i) {
..
..
count++;
if (count >= 25 || (i + 1) >= selectedItemsLength) {
.. ..
//Series Promise: The code to be executed in sequence being placed within the
//then() the existing promise
seriesPromise = seriesPromise.then(function() {
Parse.Cloud.run('sampleCloudFuction', itemsArray, function() {
console.log("success callback in JS");
var tempPromise = Parse.Promise.as();
return tempPromise;
}, function (error) {
alert("Error " + error.code + "::");
console.log("error callback in JS")
});
});
count = 0;
}
});
..
..
seriesPromise.then(function() {
//Fetch the approval state of the disabled button
alert("load remaining items");
});
下面的功能是執行循環後調用。但是,在接收所有先前請求的回調之前,這個名稱已被調用。
seriesPromise.then(function() {
//Fetch the approval state of the disabled button
alert("load remaining items");
});
您需要顯示的代碼從那裏seriesPromise是定義 – wayne
@wayne,我已經包含上述代碼中的註釋。 ----- var seriesPromise = new Parse.Promise.as(); - –