如何使用promises来完成没有重复代码的系列

时间:2015-06-22 18:02:58

标签: node.js promise bluebird

我需要串行执行代码,我需要执行N次相同的功能

实施例

// execute asynFunc 4 times in series
object.asynFunc()
  .then(function() {
    return object.asynFunc();
  })
  .then(function() {
    return object.asynFunc();
  })
  .then(function() {
    return object.asynFunc();
  })

我想要执行相同的功能100次

2 个答案:

答案 0 :(得分:3)

只需使用循环。

var lastPromise = Promise.resolve();
for (var x = 0; x < 100; x++) {
    lastPromise = lastPromise.then(function () {
        return object.asyncFunc();
    });
}

您还可以在长度为100的数组上使用Promise.reduce来实现相同的效果。

Promise.reduce(new Array(100), function () {
    return object.asyncFunc();
});

答案 1 :(得分:0)

-d,

此代码将执行该函数100次