如何調用一個函數a()
後另一個函數b()
當b()
包含異步函數c()
?調用另一個具有異步函數功能的函數本身
A() {
}
B() {
//do sometihng
c(); //async function
//do something
}
我想打電話給A()
如果B()
包括c()
執行完畢。但我不能修改函數B()。
如何調用一個函數a()
後另一個函數b()
當b()
包含異步函數c()
?調用另一個具有異步函數功能的函數本身
A() {
}
B() {
//do sometihng
c(); //async function
//do something
}
我想打電話給A()
如果B()
包括c()
執行完畢。但我不能修改函數B()。
async function b(){
await c();
}
function a(){}
(async function(){
await b();
a();
})()
使b等待c,然後您可以等待b並執行a。另一種方式是:
function b(){
return c();
}
b().then(a);
請注意,在所有瀏覽器中不支持'async'和'await' – charlietfl
不,完全沒有......許多不支持它們的傳統瀏覽器 – charlietfl
@charlieftl不,我基於在問題上使用* async * ,其中op正在討論*異步函數* ... –
關鍵字await
是你在找什麼。
從https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await: 如果將Promise傳遞給await表達式,它將等待Promise的解析並返回解析後的值。
async function c() {
await b();
a();
}
'c()'是什麼? – charlietfl