Node.js 中优雅处理异步任务超时:AbortController 与 Promise.race 的陷阱与选择
在 Node.js 后端开发里,调用外部 API 或执行耗时数据库查询时,给异步操作设置超时几乎是必备的防御手段。很多开发者第一反应是 Promise.race 配合 setTimeout,但这种方式只能让外层 Promise 提前 reject,底层请求并不会真正取消,导致连接泄漏、定时器未清理,甚至在并发高时拖垮服务。Node.js 从 v15 开始稳定支持 AbortController,配合 fetch、axios 或原生 http 模块可以实现真正的请求终止。这篇文章会从实际代码出发,对比两种方式...