我在Q中看到Chaining任意数量的承诺 ; 我的问题不同.
如何按顺序进行可变数量的调用,每个调用都异步返回?
该场景是一组HTTP请求,其数量和类型由第一个HTTP请求的结果确定.
我想简单地这样做.
我也看到过这样的答案:
var q = require('q'),
itemsToProcess = ["one", "two", "three", "four", "five"];
function getDeferredResult(prevResult) {
return (function (someResult) {
var deferred = q.defer();
// any async function (setTimeout for now will do, $.ajax() later)
setTimeout(function () {
var nextResult = (someResult || "Initial_Blank_Value ") + ".." + itemsToProcess[0];
itemsToProcess = itemsToProcess.splice(1);
console.log("tick", nextResult, "Array:", itemsToProcess);
deferred.resolve(nextResult);
}, 600);
return deferred.promise;
}(prevResult));
}
var chain = q.resolve("start");
for (var i …Run Code Online (Sandbox Code Playgroud)