首页 > 解决方案 > 如何在运行其他函数时等待函数中的特定结果

问题描述

我想在等待另一个响应时运行一些代码?

例子:

var obj = {};

await pre(obj);
await first(obj);
await second(obj);
await third(obj);

await function pre(obj) {self.something = "something";}
await function first(obj){...something...}
await function second(obj){...something...}
await function third(obj){...Do something with obj...}

我不知道的是,我如何运行 pre() 并完成其耗时的目标,同时运行 first() 和 second() 和 third() 但第三个将在 pre 完成后运行?

标签: javascriptnode.jsasync-await

解决方案


您可以Promise.all在运行之前并行运行所有中间步骤third

var obj = {};

await Promise.all([ pre(obj), first(obj), second(obj)]);
await third(obj);

如果我正确理解您的问题,那么在Promise.all完成时,obj将包含 running prefirstsecond.

小心错误处理以及对obj对象的非确定性访问。


推荐阅读