我希望在数据库响应之前向我的用户显示加载图标,然后将其重定向到正确的页面。
我的代码是这样的:
// handler
function handler(request, reply) {
reply.view('loading') // show loading with css
// do database stuff...
// database callback function
function db_callback_function() {
reply.redirect('user/page') // after db responds, redirect.
}
}
Hapi说我只能使用一次回复接口(interface):
Unhandled promise rejection (rejection id: 1): Error: reply interface called twice
那么如何在数据库加载之后重定向我的用户?
编辑:我知道我需要使用前端显示加载程序。我只是不知道我的后端如何告诉我的前端何时重定向。
最佳答案
一个请求只能响应一次。 您应该在前端而不是后端执行“加载内容”。
因此,当您发送 HTTP 请求时,您应该将状态标记为正在加载。
对于您的示例代码,服务器代码应修改为:
// handler
function handler(request, reply) {
// reply.view('loading') <- REMOVE THIS LINE
// do database stuff...
// database callback function
function db_callback_function() {
reply.redirect('user/page')
}
}
在这种情况下,当您的前端收到响应时,它将重定向到适当的页面。
关于javascript - 如何使用数据库回调函数重定向用户 - HAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45761069/