Await
Promise 中完成會透過 then 來回傳,在 await 中他則是會等待這段函式完成後在往下繼續執行,這是一個卡住的概念。
Await 顧名思義就是等待,在這個 Promise 結束前後面的程式碼都無法被執行。所以以下結果會出現
雖然await
是逐一執行的概念,不過它也是能夠與Promise.all()
同時使用。
但其實我們可以從許多文件發現await/async
都是同時使用的,await 的錯誤會讓 async 拋出錯誤,而不會造成終止。
Async
- 只不過他能夠將 await 包在裡面,被包在裡面的 await 就如同先前的結構一樣,他會依序地執行。
async
本身也是類似 Promise,在正確執行的情況下 return 會傳回 resolved 的狀態,也可以使用 then 來接收正確的資料。- 當 async 被呼叫時他會回傳一個 Promise,如果正確的運行這個 Promise 會回傳一個 resolved (正確的運行),如果函式無法正確地完成,則會拋出錯誤的 rejected。