async、await 優缺點


async、await 優缺點

async 和 await 相比直接使用 Promise 來說,優勢在於處理 then 的調用鏈,能夠更清晰准確的寫出代碼。缺點在於濫用 await 可能會導致性能問題,因為 await 會阻塞代碼,也許之后的異步代碼並不依賴於前者,但仍然需要等待前者完成,導致代碼失去了並發性

下面來看一個使用 await 的代碼。

  • 首先函數b 先執行,在執行到 await 10 之前變量 a 還是 0,因為在 await 內部實現了 generators ,generators 會保留堆棧中東西,所以這時候 a = 0 被保存了下來
  • 因為 await 是異步操作,遇到await就會立即返回一個pending狀態的Promise對象,暫時返回執行代碼的控制權,使得函數外的代碼得以繼續執行,所以會先執行 console.log('1', a)
  • 這時候同步代碼執行完畢,開始執行異步代碼,將保存下來的值拿出來使用,這時候 a = 10
  • 然后后面就是常規執行代碼了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM