2016-04-18 12 views

Antwort

2

Einfach zurück data.seq wird nicht funktionieren, da findOneAndUpdate asynchrouse ist. Sie müssen entweder eine Rückruffunktion oder Verwendung Versprechen passieren

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

} 

getnextseq(function(seq) { 
    console.log(seq); 
} 
); 

Oder versprechen Weg

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



getnextseq().then(function(seq) { 
    console.log(seq) 
}); 
+1

, wie dies ein Versprechen mit zu übergeben? – shinta

+0

exec() gibt ein Versprechen zurück. Ich habe meine Antwort aktualisiert. –