我想在处理程序完成之前从hapijs处理程序发送响应。
我已经尝试过h.response().code(204).takeover()
,但是直到从处理程序中显式返回了响应,并且文档显示了相同的信息后,响应似乎才被发送。
我想立即返回204,然后继续在处理程序中运行代码。发送响应后,是否可以继续处理?
request.generateResponse()的文档建议可以使用回复接口,但我认为这只是一个文档错误,因为回复接口链接回了响应工具包文档。
答案 0 :(得分:1)
如果在返回响应之前调用了异步代码执行,则可以在发送响应后继续运行异步代码。
async function someAsyncCode() {
// Do processing
}
(request, h) => {
someAsyncCode()
return h.response('hello worl').code(204).takeover()
}
由于您不是在等待或返回诺言,因此执行“ someAsyncCode”功能不会阻塞执行流程。