发送响应并继续执行任务Express | Node.js
- 论坛
- 发送响应并继续执行任务Express | Node.js
14 浏览
发送响应并继续执行任务Express | Node.js
在 Node.js 中(我刚接触),我正在尝试在收到响应后执行一系列任务。然而,我希望尽快返回响应时间。我不需要将这些任务的结果返回给客户端,所以我正在尝试立即返回响应。
我的当前实现大致如下:
var requestTime = Date.now; app.post('/messages', function (req, res) { console.log("收到请求"); // 处理响应 var body = res.body; res.send('成功'); res.end(); console.log("发送响应"); performComplexTasks(body) }) function performComplexTasks(body){ // 在此处处理 body 数据; console.log("完成任务:", Date.now()-requestTime, "毫秒"); } // -------日志----------- // 收到请求 // POST /api/messages 200 3.685 ms - 59 // 发送响应 // 完成任务:2500 毫秒
发出请求的客户端似乎会在 performComplexTasks() 完成之前挂起。(POST 在 3.685 毫秒内完成,但响应需要 2500 毫秒才能完成。)
有没有办法立即发送响应并完成其他任务,而不会让客户端等待/挂起?(在我的情况下,客户端无法进行多个 API 调用。)