async/await 是 Node.js 中处理异步操作的核心语法,它让异步代码更清晰、更易读,避免了传统回调函数和 .then() 链式调用的嵌套问题。以下是关键知识点:


1. 基本概念

  • async:声明一个函数为异步函数,返回值为 Promise
    async function fetchData() {
      return new Promise((resolve, reject) => {
        // 异步操作
      });
    }
    
  • await:等待 Promise 解决,仅在 async 函数中使用
    const data = await fetchData();
    

2. 使用示例

  • 简单请求
    async function example() {
      const result = await fetch('https://api.example.com/data');
      console.log(await result.json());
    }
    
  • 错误处理
    try {
      const data = await fetchData();
      // 处理数据
    } catch (error) {
      console.error('请求失败:', error);
    }
    

3. 与 Promise 的关系


4. 优点

可读性:像同步代码一样编写异步逻辑
错误处理:使用 try/catch 简化异常捕获
避免回调地狱:层级扁平化,提升代码结构清晰度


5. 注意事项

  • await 会暂停函数执行,但不会阻塞事件循环
  • 避免在非 async 函数中使用 await,否则会抛出错误
  • 配合 Promise.all() 可实现并发请求优化

async_await
*图示:async/await 与传统回调的对比*

如需深入理解异步编程机制,可阅读 Node.js 异步编程进阶指南