我有一系列異步函式,需要按順序執行。但是,如果其中一個功能失敗或花費太長時間,則應重新觸發一定次數。
所以我的問題是:具有異步功能的控制流的標準/優雅結構是什么?例如:
funcA()
.then(resultA => funcB(resultA)
.then(resultB => funcC(resultB)
.then(...))
uj5u.com熱心網友回復:
你可以這樣做
function funcA() {
return Promise.resolve('a');
}
function funcB(data) {
return Promise.resolve(data ' b');
}
function funcC(data) {
return Promise.resolve(data ' c');
}
async function controlFlowExample() {
const resultA = await funcA();
const resultB = await funcB(resultA);
const resultC = await funcC(resultB);
console.log(resultC);
}
controlFlowExample();
uj5u.com熱心網友回復:
您可以使用 async-await 將它們整齊地鏈接在一起:
const res_a = await funcA()
const res_b = await funcB(res_a)
const res_c = await funcC(res_b)
這比鏈接更好,.then因為在此處保存更多值時更容易除錯。
旁注:如果你這樣做,最好在你的函式中實作 trycatch。
IMO 它看起來也更整潔。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370680.html
標籤:javascript 异步 异步.js 控制流
