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

hapijs v18 send response before handler completion

我想在处理程序完成之前从我的 hapijs 处理程序发送响应。 我已尝试 h.response().code(204).takeover(),但是在从处理程序明确 returned 并且文档表明相同之前,似乎不会发送响应。 我想立即 return 一个 204 然后在处理程序中继续 运行 代码。有没有办法在发送响应后继续处理? request.generateResponse() 的文档建议可以使用回复界面,但我认为这只是一个文档错误,因为回复界面链接回响应工具包文档。

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

async function someAsyncCode() {
  // Do processing
}

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

由于您没有等待或返回承诺,函数的执行 "someAsyncCode" 不会阻塞执行流程。