如何使用javascript从外部函数访问内部函数的属性



我已经在函数中声明了全局级别的变量,这些变量最终在内部函数中发生了更改,我想将更改后的变量值作为外部函数的值返回,但目前尚未定义。Plz提供指导。

function checkResult(req){
let result = true;
Reservation.find({result_date: req.body.res_date}, function (err,doc) {
if (err) {console.log(err);}
else if (reservations) {
result = false;
console.log(result);       
}
})
console.log("Final:");
return result; // undefined error
}

您应该使用回调。

例如:

function checkResult(req, callback){
let result = true;
Reservation.find({result_date: req.body.res_date}, function (err,doc) {
if (err) {console.log(err);}
else if (reservations) {
result = false;       
}
callback(result);
})
}

然后使用这样的功能:

checkResult(req, function(result){
console.log(result); // prints the boolean
});

Reservation.find希望接收一个在完成时调用的回调。如果Reservation.find是异步的,那么checkResult告诉Reservation.find开始执行,然后将立即返回result(即undefined)。

换句话说,return result;result = false;之前执行,因为匿名函数function (err,doc)内部的一切都发生在函数执行流之外。

尝试在回调(function (err,doc)块)中执行任何需要result的操作。

编辑:这是Kenji Mukai在下面显示的内容

最新更新