完成后如何重复调用函数?

时间:2015-06-10 14:50:24

标签: javascript node.js promise

我想调用一个包含大量异步数据库连接调用的函数main()。我希望在main()的迭代完成后重复调用这个函数。

我应该如何在Nodejs中做到这一点?我认为有一些方法可以在这里使用promises来做到这一点。但我无法正确思考方向。

2 个答案:

答案 0 :(得分:1)

使用Promise.all等待所有承诺完成。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

之后您可以致电.then(main)

function main() {
  var promises = [];

  promises.push(...);
  promises.push(...);
  ...

  Promise.all(promises).then(main);
}

答案 1 :(得分:0)

您可以将所有异步承诺分组到一个promise对象中,并在满足所有承诺后再次执行您的函数。有关承诺分组的更多信息:Promise from an array of promises in NodeJS Deferred?

如果不考虑承诺完成,你不应该再次运行你的功能,这可能会导致奇怪的行为。