繁体   English   中英

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

[英]How to access properties of inner function from outer function with javascript

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

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;之前执行result = false; 因为匿名函数function (err,doc)发生在函数执行流程之外。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM