2016-05-13 8 views
0

私はループバックが新しく、リモートフックの使用方法を習得しようとしています。私は3つのパラメータを提供するために必要なドキュメントを読みました。 context、およびunused変数およびnextパラメータ。Loopbackリモートフックの次のパラメータは何ですか?

私は通常、リモートフックの末尾にnext()が呼び出されていることを確認します。

ループバックでこのパラメータの目的は何か説明できますか?

答えて

4

これは、node.jsの非同期性に関するものです。

nextの目的は、あなたがフックで行う必要があることをすべて実行したことをループバックに伝えることであり、処理を続けることができます。

フックで非同期を行う必要がある場合は、ループバックが完了するのを待つためにnext()と呼び出し、完了したことをループバックが認識します。

next()に電話しなかった場合、アプリケーションがハングアップし、408タイムアウトになることが最も重要です。例えば

あなたは別のサーバーにリクエストを行うために必要な場合:

SomeModel.beforeSave = function(next, modelInstance) { 

    // if you call next() here it would be called immediately and the result of request 
    // would not be asign to modelInstance.someProperty 

    request('http://api.server.com', function (error, response, body) { 

     // do something with result of the request and call next 
     modelInstance.someProperty = body; 

     // now when you updated modelInstance call next(); 
     next(); 

    }) 

    // same here if you call next() here it would be called immediately and the result of request 
    // would not be asign to modelInstance.someProperty 

}; 
関連する問題