是否在函数中使用回调函数返回值?
function getnextseq(){
autoincrement.findOneAndUpdate({ _id:"userid"}, { $inc: { seq:1}},function(err,data){
console.log(data.seq)
})
return data.seq;
}
console.log(getnextseq());
答案 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)
});