在這種情況下使用await 被認為是一種不好的做法嗎?
P粉775723722
P粉775723722 2024-04-01 08:33:30
0
1
418

我已經看到幾個 linter 標記了這種行為,但我想知道這是否不是您使用承諾的部分原因:

const promise = myFn()
//do other stuff
const result = myOtherFn(await promise)

錯誤:應等待或捕獲承諾

那麼這是一個錯誤的程式碼嗎?如果是這樣,為什麼?

P粉775723722
P粉775723722

全部回覆(1)
P粉295728625

是的,這是 await 的不尋常用法,也是可能導致應用程式崩潰的不良做法。

通常你會立即 await 的承諾:

const value = await myFn()
// do other stuff
const result = myOtherFn(value);

不立即 awaiting 承諾的問題是,當 // do other stuff 正在運行時,當它因錯誤而拒絕時,您會錯過。如果其他東西是異步的,你可能await 太晚了,如果其他東西本身拋出異常,你永遠不會await 它,在這兩種情況下,這都會導致promise 未經處理的拒絕,這將使你的應用程式崩潰。另請參閱等待多個並發等待操作和await Promise.all() 和多個等待之間有什麼區別? 一个>.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板