首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同步同时调用的十个以上的javascript函数,而不会超时

同步同时调用的十个以上的javascript函数,而不会超时
EN

Stack Overflow用户
提问于 2019-11-18 23:06:17
回答 3查看 29关注 0票数 0

我有超过10个函数同时被调用。我想同步它们。我想在没有超时的情况下完成它,这意味着当前一个函数完成时,下一个函数将被执行。有没有一个干净利落的方法?

EN

回答 3

Stack Overflow用户

发布于 2019-11-18 23:26:28

只要在所有东西上使用await,如果它返回一个实际值,它将立即解析,否则它将等待解析:

代码语言:javascript
运行
复制
function fn1() {
  return 10;
}

function fn2() {
  return new Promise(r => setTimeout(r, 1000, 20));
}

function fn3() {
   return 30;
}

然后:

代码语言:javascript
运行
复制
async function main() {
   console.log(await fn1()); // 10
   console.log(await fn2()); // 20, after 1sec
   console.log(await fn3()); // 30
}

main();

在这种情况下,您还可以拥有一个函数数组,并循环遍历它,始终使用await,而不关心函数本身(如果它是async或其他什么)。

另外,我只是出于演示的目的使用了超时,因为我没有任何真正的异步代码,我知道你不想使用它;它可能是一个http请求(fetch),基本上任何东西都是async

票数 0
EN

Stack Overflow用户

发布于 2019-11-18 23:09:25

你需要提供你的需求。但是,如果Async解决了您的问题,您可以使用它

票数 -1
EN

Stack Overflow用户

发布于 2019-11-18 23:13:07

代码语言:javascript
运行
复制
function f1(cb){
  cb();
}

function f2(cb){
  cb();
}

function f3(cb){
  cb();
}

...etc

then...

f1(f2(f3(...etc)));

这不是更好的方法...但这对学习什么是回调地狱很有帮助

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58917504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档