0

为了响应对端点的 http 请求,我基本上必须进行一些计算、数据库调用等并将响应返回给请求者。在发送响应之后可以进行一些计算,对于我来说,尽可能快地返回响应是有意义的。

从我在 ASP.NET 中看到的情况来看,一旦您返回响应,整个请求-响应周期就结束了。在不使用作业队列系统或类似的东西的情况下,我需要基本代码来实现吗?在发回响应之前,我已经研究过使用Task并触发异步操作,但从我一直在阅读的内容来看,它可能很危险,系统可能会随机终止进程等。

我非常习惯于节点/表达,我正在尝试做相当于:

router.get('/myroute', executeStuff, returnResponse, executeStuff2);

// initial processing
executeStuff = (req, res, next) => {
  someAsyncOperation()
    .then(() => next())
    .catch(...);
}

// send response after necessary stuff is done
returnResponse = (req, res, next) => {
  res.send(responseBody);
  next();
}

// do the after response processing, side effects, etc.
executeStuff2 = (req, res, next) => {
  someAsyncOperation()
    .then(() => {
      // end of the chain
    })
    .catch(...);
}
4

0 回答 0