簡體   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