【问题标题】:How to call a promise on every value of an array sequentially? [duplicate]如何按顺序调用数组的每个值的承诺? [复制]
【发布时间】:2017-09-23 08:37:15
【问题描述】:

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

let array = [ 1, 2, 3 ];

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

【问题讨论】:

  • 那里必须成为这个的欺骗目标,但我还没有找到它......(编辑:找到它)

标签: javascript promise


【解决方案1】:

使用Array#reduce 方法:

let array = [1, 2, 3, 4];
array.reduce((p, value) => {
    return p.then(() => MyPromiseFunction(value));
}, Promise.resolve());

【讨论】:

    【解决方案2】:

    您可以为此使用.reduce()

    let array = [ 1, 2, 3 ];
    
    let p = array.reduce(function (p, e) {
        return p.then(function () {
            return MyPromiseFunction(e);
        });
    }, Promise.resolve());
    

    【讨论】:

      猜你喜欢
      • 2019-06-16
      • 2021-12-07
      • 2015-12-22
      • 2018-09-03
      • 1970-01-01
      • 2018-10-03
      • 2019-03-08
      相关资源
      最近更新 更多