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 异步编程的标准范式。
全栈工程师 async/await 确实改变了 JS 的编程体验
2026-06-28 21:30