我正在使用node,并且必须在从promise返回n之后进行n次API调用。我最初的想法是创建一个foreach循环,创建n个promises,将它们存储在一个数组中,然后调用
Promise.all(promisesArray).then(function(){...});
但是,这将包含在原始承诺的then()
调用中,有效地设置了嵌套的承诺情况。
getN() //returns a promise object.
.then(function(n) {
var promisesArray = [];
for(var i = 0, i < n; i++) {
var promise = new Promise(function(resolve, reject) { callSomething(i, resolve) });
promisesArray.push(promise);
}
Promises.all(promisesArray).then(function(){
...
resolve; //resolves original promise
});
.then(function(something) {...})
.catch(function(err) {...};
我该如何避免这种情况?谢谢你的帮助!