私はノード/ javascriptを使い慣れていません。ネストされた関数から戻ってくる
私は以下のコードを持っています。 Unit
とOwner
の両方の値が正常にデータベースをチェックします。問題は、if文の後のコードelse if (Owner){
が期待どおりに実行されることですが、プログラムがreturn reply(output);
行に到着した後でないことが予想されます。
私はOwner.findOne(...
コードから戻ってきていると思います。
誰かが間違っているのを見ることはできますか?
exports.sale = {
tags: ['api'],
validate : {
//blah blah blah
},
handler : function(request, reply) {
var output = {
success: true,
operations: [],
epoch: Date.now()
};
Unit.findById(request.payload.deviceNumber, function(err, device) {
if (err) {
//blah blah blah
}
if (device) {
Owner.findOne({OwnerId: device.Owner}, function(err, Owner) {
if (err) {
//blah blah blah
}
else if (Owner){
//make changes to output.operations
}
});
} else {
output.success = false;
}
return reply(output);
});
}
};
[なぜ私の変数は関数の内部で変更した後に変更されないのですか? - 非同期コードリファレンス](http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron) –