在一个具有异步函数的函数内部调用另一个函数后,如何顺序执行这两个函数?

3
如何在一个包含异步函数 c() 的函数 b() 后调用另一个函数 a() ?
A() {

}

B() {

    //do sometihng
    c(); //async function 
    //do something

}

如果包括c()在内的B()执行完毕后,我想要调用A()。但我无法修改函数B()。


c()里面是什么? - charlietfl
2个回答

3
async function b(){
  await c();
}

function a(){}

(async function(){
  await b();
  a();
})()

让 b 等待 c,然后你可以等待 b 并执行 a。另一种方法是:

function b(){

  return c();
}

b().then(a);

不,一点也不……有很多旧版浏览器不支持它们。 - charlietfl
@Avinash,如果 b 设计不良,那么你就没有希望了。 - trincot
@trincot,对于这个代码with({b:_=>b().then(a)}){c)}怎么样?! - Jonas Wilms
@Jonas,一个带有b属性的对象?除了语法错误之外,我不知道你想要表达什么。 - trincot
@trincot 是的,那是用于变量查找的...哦,还有一个括号丢失 :/ - Jonas Wilms
显示剩余4条评论

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接