Async/await是什麼意思

async/await 是一種在 JavaScript 中使用異步(asynchronous)函數的語法糖(syntactic sugar)。它提供了一種更為同步(synchronous)風格的方式來編寫異步代碼,使得異步代碼看起來更加清晰和易讀。

async 關鍵字用來定義一個異步函數,這個函數會自動返回一個 Promise 對象。在 async 函數中,可以使用 await 關鍵字來等待一個 Promise resolve 後再繼續執行代碼。

下面是一個使用 async/await 的簡單示例:

async function fetchData() {
  // 使用 await 等待 fetch 請求完成
  const response = await fetch('https://example.com/data');
  const data = await response.json();

  // 使用 data 變量
  console.log(data);
}

fetchData().then(() => console.log('Data fetched successfully'));

在上面的示例中,fetchData 函數是一個 async 函數,它使用 await 關鍵字等待 fetch 請求完成並解析回來的數據。由於 async 函數會返回一個 Promise,我們可以使用 .then() 方法來處理完成時的回調。

async/await 語法通常與 try...catch 語句結合使用,以處理異常情況:

async function fetchData() {
  try {
    const response = await fetch('https://example.com/data');
    const data = await response.json();

    // 使用 data 變量
    console.log(data);
  } catch (error) {
    console.error('An error occurred while fetching data:', error);
  }
}

fetchData().then(() => console.log('Data fetched successfully'));

在這個示例中,如果 fetch 請求失敗或者數據解析發生錯誤,catch 子句將會捕獲並列印出錯誤信息。

總結一下,async/await 語法使得編寫異步代碼更加簡潔和直觀,它將異步流程轉換為同步風格,使得代碼更容易理解和維護。