我希望我的用户在数据库响应之前显示加载图标,然后重定向到正确的页面。
我的代码如下:
// 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说我只能使用一次回复界面:
Unhandled promise rejection (rejection id: 1): Error: reply interface called twice
那么如何在数据库加载后重定向我的用户?
编辑:我知道我需要使用前端显示加载器。我只是不知道我的后端如何告诉我的前端何时重定向。
答案 0 :(得分:1)
一个请求只能响应一次。 你应该做"加载东西"在你的前端而不是后端。
因此,当您发送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')
}
}
在这种情况下,当您的前端收到回复时,它会重定向到相应的页面。