如何顺序调用数组的每个值的promise?

时间:2017-03-30 10:54:58

标签: javascript promise

我有一个值数组,我想在数组的每个值上调用一个promise函数。但这必须按顺序发生。我还想在上一个承诺得到解决之前等待调用下一个承诺。

let array = [ 1, 2, 3 ];

for (var i = 0; i < array.length; i++) {
  MyPromiseFunction(array[i]).then(
     // goToNextPromise
  );
}

2 个答案:

答案 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());