我理解 Promise 和 await/asyc 之間的區別在于錯誤處理和可讀代碼。Promise 可以使用 .catch() 進行錯誤處理,但是 async/await 沒有錯誤處理的函式,所以我們必須使用 try-catch(),而當代碼變長時 async/await 會更好。
但我無法區分 setTimeout。三個異步函式有什么區別?
非常感謝您的幫助:)
uj5u.com熱心網友回復:
使用 setTimeout,您只需設定一個時間(以毫秒為單位),該程序應該等待到 setTimeout 呼叫中的回呼函式被呼叫。
意義:
setTimeout(() => {
console.log('Hello World!');
}, 1000);
當 setTimeout 被執行時,它將等待 1000 毫秒 = 1 秒,直到它執行 console.log(); 行動。
在錯誤處理的情況下,您仍然需要手動處理錯誤,但您也可以在 setTimeout 中解決 Promises。因此,您可以告訴程式它應該等待 1 秒,直到它解決 Promise 并且它可以捕獲例外,正如您在 Promise 呼叫中使用 .catch() 所說的那樣。
TL;DR:異步方法只是等到方法完成(如果您等待它們)并且 setTimeout 在給定的毫秒數后執行代碼塊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/462303.html
標籤:javascript 异步
上一篇:如何只考慮異步函式的最新呼叫(JSfetch/無限滾動)
下一篇:推送到異步映射中的陣列
