我建立一個同步的一系列承諾的,像這樣:如何捕捉錯誤在同步諾言鏈
let order = [fn1, fn2, fn3];
let result = Promise.resolve();
order.reduce((chain, task) => {
return chain.then(task);
}, result);
(通過的this article節「系列中的執行承諾」)。這可以像我期望的那樣運行所有的系列操作,但在捕捉錯誤/將catch
塊放在哪裏時會遇到問題。
邊注:異步即使解決,捆綁,像這樣的承諾執行。 –
有一些想法:這些並不是真正同步的,它們是連續的(所有的承諾都是異步的,總是......聽起來像步行,但如果你在外界改變狀態,這將會產生巨大的影響)。如果您想要獨立處理錯誤情況(基於將順序中的下一個調用的失敗轉換爲成功),那麼您需要更改數據格式,或者您需要接受任何可能失敗的消息,並允許消費者發現錯誤;最後,如果你不保存對方出現的承諾,那麼你就不能傳遞它。 – Norguard