我是新来的节点/ 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) –