Javascript 函数完成后如何重复调用?
我想调用一个函数main(),它包含许多异步db连接调用。我想在main()的迭代完成后重复调用此函数Javascript 函数完成后如何重复调用?,javascript,node.js,promise,Javascript,Node.js,Promise,我想调用一个函数main(),它包含许多异步db连接调用。我想在main()的迭代完成后重复调用此函数 我应该如何在Nodejs中做到这一点?我认为有一些方法可以利用这里的承诺来做到这一点。但我不能朝着正确的方向思考 您可以将所有异步承诺分组到一个承诺对象中,并在满足所有承诺后再次执行函数。有关承诺分组的更多信息: 如果不考虑承诺完成,则不应再次运行函数,这可能会导致奇怪的行为。使用promise.all等待所有承诺完成 之后,您可以调用。然后(main) 我认为更好的方法是在main()函数
我应该如何在Nodejs中做到这一点?我认为有一些方法可以利用这里的承诺来做到这一点。但我不能朝着正确的方向思考 您可以将所有异步承诺分组到一个承诺对象中,并在满足所有承诺后再次执行函数。有关承诺分组的更多信息:
如果不考虑承诺完成,则不应再次运行函数,这可能会导致奇怪的行为。使用promise.all等待所有承诺完成 之后,您可以调用
。然后(main)
我认为更好的方法是在main()函数中使用承诺,在该承诺得到解决后,再次调用main()。但是如何重复这样做呢?难道你没有多重承诺吗?如果您只有一个,那么只需在承诺回调的末尾调用main就可以了。因为它是异步代码,所以您必须向我们展示实际的异步代码,以便我们可以更具体地向您提供建议。像这样没有任何实际代码的一般性问题要求人们提供试图“猜测”您实际在做什么的一般性答案,并且如果您向我们展示您的实际代码,这些问题很少像答案那样有针对性。假设我将所有承诺都归为一类。但是如何重复调用这个函数呢?你可以递归地调用它,当所有的承诺都得到满足时,在回调内部调用它。你能为递归部分举个例子吗?
function main() {
var promises = [];
promises.push(...);
promises.push(...);
...
Promise.all(promises).then(main);
}