我有一个 Mongoose 数据库查询
var player;
Users.findById(req.user._id,function(err,user){
console.log('>>> user: '+user); //----2
player = user;
});
console.log('>>> player: '+player); // ----1
在此代码中,1
在 2
之前执行,因为 2
位于回调内。
有办法避免这种情况吗?
最佳答案
您必须在与 player
变量相同的命名空间中创建另一个函数(例如 log
),放入 console.log('>>> player: '+player);
给它,并在分配 player
后调用 log
。
因此,player
变量对于两者 findById
回调和 log
函数都是可见的。
这是代码:
var player;
Users.findById(req.user._id,function(err,user){
console.log('>>> user: '+user);
player = user;
log();
});
function log() {
console.log('>>> player: '+player);
}
关于javascript - 避免强制回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309001/