我是新來的節點/ 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) –