I have a hapi.js route where I want to defer the response. I\'ve tried storing the reply
function and calling it later, or wrapping it in a promise, but hapi alway
If an error is thrown within your handler, hapi.js
will immediately exit and give a 500
status code. Check if generateId()
is a valid function.
The rest of your code looks right for your third and fourth examples. reply().hold()
is necessary to keep the connection open after handler
returns.
Since the version 8, Hapi supports Promised responses, so you can do :
var respond = function(message) {
return new Bluebird.Promise(function(resolve, reject) {
setTimeout(() => {
resolve(message);
}, 2000);
});
};
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
reply(respond("Hello buddy"));
}
});