什么是异步编程?

在JavaScript中,异步编程是处理长时间操作(如网络请求、文件读写)的核心机制,通过避免阻塞主线程提升性能。
使用async/awaitPromise可以让代码更清晰,像同步一样编写异步逻辑。
📌 关键点

  • 非阻塞特性
  • 回调函数与事件循环
  • 异步操作的并发处理

常见异步模式

1. 回调函数

最原始的方式,但容易导致回调地狱(Callback Hell)

doSomething(function(result) {
  doAnotherThing(result, function(finalResult) {
    // ...
  });
});

2. Promise

现代异步处理的基础,支持.then().catch()

fetchData()
  .then(data => processData(data))
  .catch(error => console.error(error));

3. async/await

更简洁的写法,基于Promise的语法糖

async function main() {
  try {
    const data = await fetchData();
    const result = await processData(data);
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

异步编程实践

事件循环(Event Loop)

JavaScript通过事件循环机制处理异步任务,如图所示:

事件循环
[了解更多事件循环原理](/zh/tutorials/javascript-event-loop)

异步函数与并发

使用Promise.all()处理多个异步操作:

const [result1, result2] = await Promise.all([fetchData1(), fetchData2()]);

错误处理

  • 使用.catch()捕获链式调用中的错误
  • try/catchasync函数中更直观

扩展阅读

async_await