我有一个值数组,我想在数组的每个值上调用一个promise函数。但这必须按顺序发生。我还想在上一个承诺得到解决之前等待调用下一个承诺。
let array = [ 1, 2, 3 ];
for (var i = 0; i < array.length; i++) {
MyPromiseFunction(array[i]).then(
// goToNextPromise
);
}
答案 0 :(得分:2)
使用Array#reduce
方法:
let array = [1, 2, 3, 4];
array.reduce((p, value) => {
return p.then(() => MyPromiseFunction(value));
}, Promise.resolve());
答案 1 :(得分:0)
您可以使用.reduce()
:
let array = [ 1, 2, 3 ];
let p = array.reduce(function (p, e) {
return p.then(function () {
return MyPromiseFunction(e);
});
}, Promise.resolve());