爲什麼需要異步編程

JavaScript 是單線程語言,網絡請求、文件讀寫等耗時操作必須異步執行,否則界面會卡死。

回調地獄的問題

多層嵌套回調代碼難以維護。

Promise 三態

  • pending:進行中
  • fulfilled:成功
  • rejected:失敗
fetch('/api/user').then(res => res.json()).then(data => console.log(data)).catch(err => console.error(err));

async/await 語法糖

ES2017 引入,讓異步代碼看起來像同步:

async function loadUser() {
  try {
    const res = await fetch('/api/user');
    const data = await res.json();
  } catch (err) { console.error(err); }
}

並行執行

多個獨立請求用 Promise.all 並行。

常見陷阱

  • 忘記 await 導致拿到 Promise 對象而非結果
  • 循環中錯誤使用 await 導致串行執行
  • 漏寫 try/catch 導致未捕獲異常

聲明:本站文章均來源於原創、轉載、AI生成等渠道,如有版權及其他問題,請點擊反饋,我公司會盡快查實並處理。