Async / Await

關鍵字 · JavaScript

1.

JavaScript (ES2017) 的現代語法,能以循序且可讀的方式撰寫非同步程式碼——將複雜的 Promise 鏈轉化為清晰的指令,簡化 API 呼叫、資料庫查詢及所有非阻塞操作的管理。

2.

基於 Promises 的機制,引入兩個關鍵字:`async` 用於宣告自動回傳 Promise 的非同步函式,`await` 用於暫停執行直到該 Promise 解析完成——消除「回呼地獄」,使程式碼在大型專案中更具可維護性

3.

現代 Full-stack 開發中不可或缺的模式,無論是客戶端(React、Next.js)或伺服器端(Node.js、Express.js)皆廣泛使用——在網路呼叫或檔案讀取等 I/O 操作期間釋放主執行緒,確保最佳效能。

另請參閱
Promise非同步Node.jsAPI

在 JavaScript 中建立非同步函式,只需在函式宣告前加上 `async` 關鍵字即可。例如:`async function fetchData() const response = await fetch('/api/data'); return response.json(); `。`async` 關鍵字會自動將回傳值轉換為 Promise,並允許在函式主體內使用 `await`。這是我們在所有應用程式中用來妥善管理後端通訊的標準語法。

非同步函式是使用 `async` 關鍵字宣告的函式,隱式回傳 Promise 並允許在其主體中使用 `await` 關鍵字。與以同步阻塞方式執行的傳統函式不同,它在等待耗時操作(網路呼叫、計時器、檔案讀取)期間會釋放主執行緒。這個機制對於維持網頁應用程式的回應性以及提供流暢且不阻塞介面的使用者體驗至關重要。

非同步函式是一種能在背景執行操作而不阻塞應用程式其餘部分的函式。在 JavaScript 中,它透過 `async` 關鍵字建立,並允許使用 `await` 暫停執行,直到耗時任務完成。這是我們在 Async Code 每天用來協調 API 呼叫、資料庫互動以及 React 和 Next.js 應用程式中複雜處理的模式。