Mongoose 中的回调函数
Posted
技术标签:
【中文标题】Mongoose 中的回调函数【英文标题】:Callback function in Moongose 【发布时间】:2016-08-09 15:45:36 【问题描述】:有没有在带有回调函数的函数中返回一个值?
function getnextseq()
autoincrement.findOneAndUpdate( _id:"userid", $inc: seq:1,function(err,data)
console.log(data.seq)
)
return data.seq;
console.log(getnextseq());
【问题讨论】:
【参考方案1】:简单地返回 data.seq 将不起作用,因为 findOneAndUpdate 是异步的。你需要传递一个回调函数或使用promise
function getnextseq(cb)
autoincrement.findOneAndUpdate( _id:"userid", $inc: seq:1,function(err,data)
cb(data.seq);
)
getnextseq(function(seq)
console.log(seq);
);
或承诺方式
function getnextseq()
return autoincrement.findOneAndUpdate( _id:"userid", $inc: seq:1).exec();
getnextseq().then(function(seq)
console.log(seq)
);
【讨论】:
如何使用 Promise 传递这个? exec() 将返回一个承诺。我已经更新了我的答案。以上是关于Mongoose 中的回调函数的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose 回调函数如何知道第二个参数是啥 db.query 结果?
mongoose、express 和 node.js 中回调函数的参数