Javascript 如何等待多个异步函数完成?

Javascript 如何等待多个异步函数完成?,javascript,node.js,Javascript,Node.js,我开发了一个类,它几乎没有运行和更新数据库中数据的函数。 我想一次运行我的类的10个线程,并且每次运行一个线程时都要开始新的运行,这样总是有10个或更少的操作在运行 我怎样才能做到呢 代码示例: const classobj = require("data.js"); let class1 = new Data(); let class2 = new Data(); ... //(8 more) class1.run(); class2.run();

我开发了一个类,它几乎没有运行和更新数据库中数据的函数。 我想一次运行我的类的10个线程,并且每次运行一个线程时都要开始新的运行,这样总是有10个或更少的操作在运行 我怎样才能做到呢

代码示例:

const classobj = require("data.js");
    let class1 = new Data();
    let class2 = new Data();
    ... //(8 more)

    class1.run();
    class2.run();
    ... // (8 more)

    // one one of the class1-10 is done i want it to start again
谢谢大家!

如果Data.run函数返回承诺,则可以执行以下操作:

const classobj=requiredata.js; const restartingPromise=promise=>{ 承诺,然后=>{ 重申承诺; }; }; 设class1=新数据; 设class2=新数据; ... //8个以上 重新启动PromiseClass1.run; 重新启动PromiseClass2.run; ...
当承诺解决时,您可以自行进行函数调用

常量随机延迟==>Math.floorMath.random*5+2*1000 const fakePromise=id=>newpromisers=>setTimeout=>{ console.log`class${id}已完成工作` 物件 },随机延迟 类MyClass{ 构造器{ this.id=id } 运行==>{ console.log`class${this.id}正在开始工作` 伪造承诺this.id.然后this.run } } //创建3个实例并调用。在每个实例上运行 […新阵列3] .map,i=>新的MyClassi+1 .forEachclassInstance=>{ classInstance.run
}您如何知道它何时完成?每个运行方法都需要解决一个承诺。然后,您可以通过在异步函数中等待它们或使用.then链来链接每一个。这里有这样的例子:你的标题说你想等待多个异步函数完成-是这样吗,还是想在它们完成后重新启动每一个函数?所以你希望一个无休止的承诺循环运行,如果一个解决了,它应该用10个再次运行?你可以选择一个递归的Promise.race来跟踪它的承诺。实际上,我有一些代码在这个方向上…Patrick-我可以添加一个标志,它将返回,但现在运行刚刚完成,它返回到范围