2017-08-18 46 views
1

我希望我的用戶能夠看到一個加載圖標,直到數據庫響應,然後被重定向到正確的頁面。如何使用數據庫回調函數重定向用戶 - HAPI

我的代碼線沿線的:

// 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. 
    } 
} 

哈皮說,我只能用回覆界面一次:

Unhandled promise rejection (rejection id: 1): Error: reply interface called twice 

所以,我怎麼可以重定向我的用戶數據庫後,負載?

編輯:我知道我需要使用前端顯示加載器。我只是不知道我的後端會告訴我的前端何時重定向。

+0

如果你的後端只是一個REST接口,那麼你需要在你的前端添加一個帶有JS的旋轉加載器。 – lumio

回答

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') 
    } 
} 

在這種情況下,當你的前端接收到響應,那麼它會重定向到相應的頁面。

+0

前端如何知道何時重定向到適當的頁面? –

+0

請看我更新的答案,簡而言之 - 你不會有整個頁面加載狀態,只需通過js和css來完成。 –

+0

你說*當你的前端收到迴應*。它會怎麼做?我的前端如何收到迴應? –

相關問題