[英]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.