これは、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
};
を