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

How to access properties of inner function from outer function with javascript

我已经在函数中声明了全局级别的变量,最终在内部函数中发生了变化,我想 return 将变量值更改为外部函数的值,但目前 undefined.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 开始执行,然后将立即 return result(即 undefined)。

换句话说,return result; 之前 result = false; 执行,因为匿名函数 function (err,doc) 中的所有内容都发生在函数执行。

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

编辑:向井健二在下面显示的内容