gpt4 book ai didi

javascript - promise : How to execute async methods in parallel then execute method

转载 作者:行者123 更新时间:2023-12-02 14:03:20 29 4
gpt4 key购买 nike

我使用 Q.js 来实现 promise 。在下面的代码中,每个方法都会进行 ajax 调用,然后返回一个 Promise。一切都按预期进行,每个方法在下一个方法开始之前执行并完成:

functionOne().then(junctionTwo)
.then(functionThree)
.then(doSomethingElse);

然而,我真正想要的是 functionOne、functionTwo 和 functionThree 全部同时执行,并且“doSomethingElse”应该仅在前 3 个方法完成时执行。

如何使用 Promise/Q.js 实现这一点?

最佳答案

您可以使用现在标准化的 Promise.all() 来告诉您一组 Promise 何时全部完成:

Promise.all([functionOne(), functionTwo(), functionThree()]).then(function(results) {
// all are done here
doSomethingElse();
}).catch(function(err) {
// error in at least one promise here
});

或者,如果您仍在使用 Q 库语法,则可以使用 Q.all() 执行相同的操作。

Q.all([functionOne(), functionTwo(), functionThree()]).then(function(results) {
// all are done here
doSomethingElse();
}).catch(function(err) {
// error in at least one promise here
});

你应该知道,在node.js或浏览器中,没有“同时”,因为JS是单线程的(除了这里没有使用的webWorkers之外)。但是,如果您的操作是异步的(我假设它们返回 promise ),那么它们可以同时运行,尽管在任何给定时刻只有一个正在执行。

关于javascript - promise : How to execute async methods in parallel then execute method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40227536/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com