Moongose中的回调函数

时间:2016-04-18 03:19:07

标签: javascript mongoose callback

无论如何

是否在函数中使用回调函数返回值?

function getnextseq(){    
 autoincrement.findOneAndUpdate({ _id:"userid"}, { $inc: { seq:1}},function(err,data){
console.log(data.seq)
})
return data.seq;
}
console.log(getnextseq());

1 个答案:

答案 0 :(得分:2)

简单地返回data.seq将不起作用,因为findOneAndUpdate是asynchrouse。您需要传递回调函数或使用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)
 });