儘管存在ESLint 規則no-return-await,這不鼓勵使用return wait,但一些開發人員可能會發現自己在利用這個圖案。雖然它不會造成重大的效能問題,但規則的描述提到return wait 引入了「在總體Promise 解決或拒絕之前的額外時間。」
但是,MDN 文件的「簡單範例」演示了return 的使用等待而不暗示任何效能問題。為了闡明這種差異,讓我們探討一下 return wait 的實際影響。
本質上,return wait 是冗餘操作。 Promise 解析或拒絕已經在 async 函數中發生,而 return wait 只是在返回值之前再次等待它。此附加操作可能會增加最少的執行時間,但不太可能對效能產生明顯影響。
return wait 確實會產生有意義的差異的一個實例是在異常處理中:
try { ... return await ...; } ...
使用await時,async函數內的拒絕會觸發異常,確保catch和finally處理程序被執行。然而,簡單的 return 只會退出 try 區塊並跳過這些處理程序。
雖然 return wait 一般來說不是效能問題,但它被認為是糟糕的風格,可能表明缺乏對 Promise 和 async/await 的理解。在大多數情況下,這是不必要的,應該避免。然而,在錯誤處理的上下文中,返回等待對於正確的異常傳播至關重要。
以上是「return wait」是效能瓶頸嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!