Node.js 异步编程:从回调到 async/await
Node.js 的核心优势之一是非阻塞 I/O。初学时容易被回调嵌套困扰, 后来逐步过渡到 Promise 与 async/await,代码可读性明显提升。
回调函数阶段
早期 Node API(如 fs.readFile)大量使用回调。
多个异步步骤串联时容易出现「回调地狱」,错误处理也需要每层单独捕获。
Promise 与链式调用
Promise 提供了统一的 then/catch 接口,适合表达「先 A 再 B」的依赖关系。 在实际项目中,我会把数据库查询、HTTP 请求封装成返回 Promise 的函数,便于复用与测试。
async/await 实践建议
- 在路由处理函数中使用 try/catch 包裹 await,统一返回错误响应
- 并发无依赖的任务用
Promise.all,避免串行等待 - 注意未捕获的 Promise rejection,生产环境应配置全局监听
异步模型理解透彻后,写 NestJS 服务、处理钱包回调、对接第三方 API 都会更从容。 后续会继续补充 Event Loop 与微任务队列相关的学习笔记。