我想调用一个包含大量异步数据库连接调用的函数main()。我希望在main()的迭代完成后重复调用这个函数。
我应该如何在Nodejs中做到这一点?我认为有一些方法可以在这里使用promises来做到这一点。但我无法正确思考方向。
答案 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?
如果不考虑承诺完成,你不应该再次运行你的功能,这可能会导致奇怪的行为。