当a()
包含异步函数b()
时,如何在另一个函数b()
之后调用一个函数c()
?
A() {
}
B() {
//do sometihng
c(); //async function
//do something
}
如果A()
包括B()
已完成执行,我想致电c()
。但我无法修改功能B()。
答案 0 :(得分:2)
async function b(){
await c();
}
function a(){}
(async function(){
await b();
a();
})()
使b等待c,然后你可以等待b并执行a。另一种方式是:
function b(){
return c();
}
b().then(a);
答案 1 :(得分:0)
关键字await
正是您所寻找的。
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await: 如果将Promise传递给await表达式,它将等待Promise的解析并返回已解析的值。
async function c() {
await b();
a();
}