新版本的Hapi.js使用async (request, h) => { return "result"; }
代替了路由处理程序的旧(request, reply) => { reply("result"); }
模式。 async
处理程序函数给我带来了很多便利。
但是,如果我希望某些进程在发送响应后继续运行,该怎么办?
Eidt 1:我决定运行该过程并异步返回结果。希望有一种更合适的方法。
答案 0 :(得分:0)
您始终可以从处理程序中返回承诺。
此代码将等待10秒钟才能解决承诺。 (Promise.delay()是bluebird Promise方法。)
handler: async (request, h) => {
return Promise.try(() => {
return Promise.delay(10000)
}).then(() => {
return "10 seconds passed"
})
}