如何等待多个异步功能完成?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何等待多个异步功能完成?相关的知识,希望对你有一定的参考价值。

我开发了一个类,该类几乎没有用于运行和更新数据库内部数据的功能。我想一次运行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函数返回Promise,则可以执行以下操作:

const classobj = require("data.js");

const restartingPromise = (promise) => {
  promise().then(() => {
    restartingPromise();
  });
};

let class1 = new Data();
let class2 = new Data();
... //(8 more)

restartingPromise(class1.run);
restartingPromise(class2.run);
...

以上是关于如何等待多个异步功能完成?的主要内容,如果未能解决你的问题,请参考以下文章

等待异步功能完成内部地图

在单个异步方法中有多个等待的目的

如何让 Python FastAPI 异步/等待功能正常工作?

如何在异步函数中处理多个等待

等待多个异步调用完成?

在 iOS 中等待多个网络异步调用