javascript - 避免强制回调

标签 javascript node.js mongoose

我有一个 Mongoose 数据库查询

var player;
Users.findById(req.user._id,function(err,user){     
    console.log('>>> user: '+user); //----2
    player = user;
    });
console.log('>>> player: '+player);    // ----1

在此代码中,12 之前执行,因为 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/

相关文章:

javascript - Windows 8 : Wait until setup tasks complete before tearing down extended splash screen

javascript - chrome 扩展删除脚本标签

node.js - Elasticsearch : connect to a remote server via. SSH( Node JS)

javascript - 在 MongoDB 中使用嵌套属性查找文档

javascript - 多页复选框处理

javascript - 在发送到 IBM Watson Assistant 之前删除 Node.js 应用程序中的上下文变量

node.js - 是否可以将java类(用于模型、 Controller )与node.js一起使用?

node.js - 如果不存在,MongoDB 将默认值合并到每个文档

javascript - 是否可以在 Mongoose 中相互引用两个模式?

javascript - javascript中的base64编码在php中解码