[英]How to use methods containing mongoose functions with control flow frameworks (e.g. Async or Step)
[英]How to control flow of async functions?
我有一個異步函數鏈,需要按順序執行。 但是,如果其中一個功能失敗或耗時過長,則應重新觸發一定次數。
所以我的問題是:擁有這樣一個帶有異步功能的控制流的標准/優雅結構是什么? 例如:
funcA()
.then(resultA => funcB(resultA)
.then(resultB => funcC(resultB)
.then(...))
你可以這樣做
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();
您可以使用 async-await 將它們整齊地鏈接在一起:
const res_a = await funcA()
const res_b = await funcB(res_a)
const res_c = await funcC(res_b)
這比鏈接.then
更好,因為在這里保存更多值時更容易調試。
旁注:如果你這樣做,最好在你的函數中實現 trycatch。
IMO 它看起來也更整潔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.