hapijs v18在处理程序完成之前发送响应

时间:2019-10-21 14:34:01

标签: controller hapijs

我想在处理程序完成之前从hapijs处理程序发送响应。 我已经尝试过h.response().code(204).takeover(),但是直到从处理程序中显式返回了响应,并且文档显示了相同的信息后,响应似乎才被发送。 我想立即返回204,然后继续在处理程序中运行代码。发送响应后,是否可以继续处理? request.generateResponse()的文档建议可以使用回复接口,但我认为这只是一个文档错误,因为回复接口链接回了响应工具包文档。

1 个答案:

答案 0 :(得分:1)

如果在返回响应之前调用了异步代码执行,则可以在发送响应后继续运行异步代码。

async function someAsyncCode() {
  // Do processing
}

(request, h) => {
   someAsyncCode()
   return h.response('hello worl').code(204).takeover()   
}

由于您不是在等待或返回诺言,因此执行“ someAsyncCode”功能不会阻塞执行流程。