如何在函数完成后反复调用它

How to call a function repeatedly after it finishes?

本文关键字:调用 函数      更新时间:2023-09-26

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

我该如何在Nodejs中做到这一点?我认为有一些方法可以使用这里的承诺来做到这一点。但是我不能在正确的方向上思考。

使用承诺。所有的等待,所有的承诺完成。

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);
}

您可以将所有异步承诺分组到一个承诺对象中,并在所有承诺都满足后再次执行您的函数。关于承诺分组的更多信息:从NodeJS的承诺数组中的承诺Deferred?

你不应该在没有考虑承诺完成的情况下再次运行你的函数,这可能会导致奇怪的行为。