小编No *_*ger的帖子

发送响应并继续执行任务 Node.js

在Node.js(我是新手)中,我试图在收到响应后执行一系列任务。但是,我想使响应时间尽可能快。我不需要将这些任务的结果返回给客户端,因此我试图立即返回响应。

我当前的实现大致是:

var requestTime = Date.now; 

app.post('/messages', function (req, res) {
  console.log("received request");

  // handle the response
  var body = res.body;
  res.send('Success');
  res.end();
  console.log("sent response");

  performComplexTasks(body)
})

function performComplexTasks(body){
   // perform data with body data here;
   console.log("finished tasks:", Date.now()-requestTime, "ms");
}

// -------LOG-----------
//    received request
//    POST /api/messages 200 3.685 ms - 59
//    sent response
//    finished tasks: 2500ms
Run Code Online (Sandbox Code Playgroud)

发出请求的客户端似乎挂起,直到performComplexTasks()完成。(POST完成时间为3.685ms,但响应需要2500ms才能完成。)

有没有一种方法可以立即发送响应并完成其他任务而无需客户端等待/挂起?(就我而言,客户端无法进行多个API调用。)

javascript asynchronous node.js express

10
推荐指数
2
解决办法
6349
查看次数

标签 统计

asynchronous ×1

express ×1

javascript ×1

node.js ×1