如下所示,為期望非異步函式的引數提供了異步函式,但它有效,為什么?
function getCallback(param, callback) {
setTimeout(() => {
callback && callback(param);
}, 1);
}
getCallback(13, async (param) => {
console.log(param);
});
---
13
uj5u.com熱心網友回復:
它起作用了,為什么?
因為async函式只是一個回傳承諾的函式,可以像任何其他函式一樣被呼叫。您會getCallback忽略 的回傳值callback(),因此它回傳的內容無關緊要。
async在不需要async函式的地方傳遞函式可以嗎?
不,通常不能將async函式(或另一個回傳承諾的函式)傳遞給不希望回呼回傳承諾的函式。.then()Promise不應該被忽略,它們應該被-chained 或awaited,并且它們需要特殊的錯誤處理。如果getCallback不處理(承諾)錯誤,則不得通過回呼該錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/371107.html
標籤:javascript 异步 异步等待 打回来
