【问题标题】:Hapi.js Keep Service Running After Handler ReturnsHapi.js 在处理程序返回后保持服务运行
【发布时间】:2018-06-23 06:50:12
【问题描述】:

新版本的 Hapi.js 使用 async (request, h) => { return "result"; } 代替旧的路由处理程序 (request, reply) => { reply("result"); } 模式。 async 处理函数给我带来了很多便利。

但是,如果我希望某些进程在发送响应后继续运行,该怎么办?

Eidt 1:我决定异步运行进程并返回结果。希望有更合适的方法。

【问题讨论】:

    标签: node.js response hapijs


    【解决方案1】:

    你总是可以从你的处理程序返回一个承诺。

    此代码将等待 10 秒,然后才能解决承诺。 (Promise.delay() 是bluebirdpromise 方法。)

    handler: async (request, h) => {
        return Promise.try(() => {
            return Promise.delay(10000)
        }).then(() => {
            return "10 seconds passed"
        })
    }
    

    【讨论】:

    • 这可能不是我想要的。我的目标是在异步函数返回之后运行一些进程。在我看来,这个函数返回之前运行一个过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多