叁拾玖2026-07-24 01:06

JavaScript 异步编程演进之路

488 38

从回调地狱说起

getUser(id, (user) => {
  getOrders(user, (orders) => {
    getDetail(orders[0], (detail) => { /* 套娃 */ });
  });
});

Promise 带来链式救赎

错误可以一路传递到 catch,代码从"嵌套"变成"管道"。

async/await:同步的心,异步的命

const detail = await getDetail((await getOrders(await getUser(id)))[0]);

事件循环是理解一切的地基

  • 宏任务:setTimeout、setInterval、I/O
  • 微任务:Promise.then、queueMicrotask
  • 每个宏任务之间,清空整个微任务队列

小结

写 JS 越久越明白:异步不是难题,只是心智模型要换。

全文完