← 返回首页
叶知秋
2026年6月28日 20:00

JavaScript 异步编程的演进

JavaScript 是单线程语言,但通过事件循环机制实现了异步非阻塞的特性。在过去十年中,JS 的异步编程模型经历了三次重大演进。

回调时代

fs.readFile('file.txt', function(err, data) {
  if (err) throw err;
  console.log(data);
});

回调模式简单直接,但多层嵌套会导致臭名昭著的"回调地狱"。

Promise 时代

fetch('/api/data')
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));

Promise 提供了链式调用和统一的错误处理,解决了回调地狱。

Async/Await 时代

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

async/await 让异步代码写起来像同步代码,极大提升了可读性。

总结

从回调到 async/await,是一条不断提升开发者体验的道路。推荐在所有新项目中使用 async/await,它已经是现代 JavaScript 异步编程的标准范式。

JavaScript异步Promise

全栈工程师 async/await 确实改变了 JS 的编程体验

2026-06-28 21:30