gpt4 book ai didi

hapi.js - 使用 Hapi 18.1 延迟响应

转载 作者:行者123 更新时间:2023-12-04 02:36:40 24 4
gpt4 key购买 nike

如何使用 Hapi 18.1 设置响应延迟,如果 API 响应缓慢,我想看到沙漏旋转。在早期版本中,我使用了如下所示的 setTimeout()

server.route({
method: 'GET',
path:'/hello',
handler: (request, h) => {
setTimeout(() => reply('Hello World!'), 1000);
}
});

但是 v18.1 抛出错误

server.route({
method: 'GET',
path:'/hello',
handler: (request, h) => {
setTimeout(() => h.response('Hello World!'), 1000);
}
});

错误

Debug: internal, implementation, error
Error: get method did not return a value, a promise, or throw an error
at module.exports.internals.Manager.execute (C:\Users\javakb\workspace\node_modules\hapi\lib\toolkit.js:48:29)
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async Object.internals.handler (C:\Users\javakb\workspace\node_modules\hapi\lib\handler.js:46:20)
at async exports.execute (C:\Users\javakb\workspace\node_modules\hapi\lib\handler.js:31:20)
at async Request._lifecycle (C:\Users\javakb\workspace\node_modules\hapi\lib\request.js:312:32)
at async Request._execute (C:\Users\javakb\workspace\node_modules\hapi\lib\request.js:221:9)

感谢任何帮助。

最佳答案

Hapi 18 期望它的路由处理程序返回响应或解析为的 promise 一个答复。您的代码没有这样做。这可以通过简单地返回一个在等待 1 秒后解决响应的 promise 来解决。

示例

server.route({
method: 'GET',
path: '/',
handler: (request, h) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(h.response('Hello World!'));
}, 1000);
});
}
});

关于hapi.js - 使用 Hapi 18.1 延迟响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61533372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com