检查这段代码
var self = this;
var flag = true;
UserSessionModel.setDB(req.db);
UserSessionModel.checkIdandToken(req.headers, function(err, result) {
if(result.length == 0){
console.log(flag); // prints TRUE in console
flag = false;
res.status(400).send(self.createResponse({}, {
success : false,
message : "User Id or Token is invalid"
}));
}
});
console.log(flag); // prints TRUE in console
在最后一行,它应该是FALSE。 请指导我
答案 0 :(得分:1)
就像我在评论中提到的那样,true
因为" asynchronicity" - 我很确定你的checkIdandToken
的第二个参数是回调函数。在运行代码之前执行console.log
。
基本上,您的变量已更改,但在您运行console.log
。
This answer解释了异步代码的工作原理。