mongoose查询结果如何返回到函数
发布于 8 年前 作者 surahe 4430 次浏览 来自 问答

function getNextSequenceValue(sequenceName){ var sequenceDocument = counters.findOneAndUpdate( {_id : sequenceName}, {$inc:{sequence_value:1}}, {new: true} ); return sequenceDocument; }

我想在getNextSequenceValue函数返回查询后的结果 但因为异步在return sequenceDocument 执行在 update操作之前,返回的是undefined。 在网上看到说可以用mongoose内置的promise来实现,但看过了还是不太会改。

4 回复
function getNextSequenceValue(sequenceName){
  return counters.findOneAndUpdate(
    {_id : sequenceName},
    {$inc:{sequence_value:1}},
    {new: true}
  ).exec();
}

使用的时候

getNextSequenceValue(foo).then(function(seq) {
  balabala;
});

@SinalVee then里不能return seq的值吗?我想要执行getNextSequenceValue后将结果直接给一个对象里的键

var one = new products({ _id:getNextSequenceValue(“productid”) })

在then()里写呀,不这样的话你就得再去看看generator/yield了

用promise就对了 你可以用bluebird 也可以和nodeclub一样用eventproxy

回到顶部