取回异步回调函数值

Node.js express 之mongoose 从异步回调函数返回值,类似于同步

时光毁灭记忆、已成空白 提交于 2019-12-09 13:26:19
Node.js是很好,异步回调模式返回值让我头疼不已啊,今日还是写下今天学习的成果,起由是因为在使用mongoose查询的时候,多个查询相互依赖会层层嵌套,看起来N不爽,我们可以使用并行查询完毕然后,返回想要的结果即可,代码看起来会美观很多,例如: User.findOne({userid:userid},function(err,findUser){ Group.find({userid:findUser.userid},function(err,group){ GroupQZ.find(groupid:group.groupid}.function(err,qz){} }) }); 以上可以使用eventproxy来并行处理。在一个函数里把三个返回的参数合并成一个json返回。 看我设计的就是死活得不到想要的值,懂的一看便知道怎么回事 module.exports.findUser = function(condition){ var userinfo; User.findOne(condition,function(err,findUser){ userinfo = findUser; }); return userinfo;//返回的结果始终是undefined }; javascript是按照顺序解析的,到查询的时候是异步执行还没有赋值就直接返回了。 我想要的理想设计方法