2017-08-18 7 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

1回のリクエストは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

*あなたのフロントエンドが応答を受け取ったとき*と言う。どのようにそれを行うのだろうか?フロントエンドはどのように応答を受け取るのですか? –

関連する問題