CNode

mongoose查询结果如何返回到函数

问答
Ssurahe发布于10 年前最后回复10 年前4 回复5075 浏览0 收藏

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)

S
SinalVee#1·10 年前
function getNextSequenceValue(sequenceName){
  return counters.findOneAndUpdate(
    {_id : sequenceName},
    {$inc:{sequence_value:1}},
    {new: true}
  ).exec();
}

使用的时候

getNextSequenceValue(foo).then(function(seq) {
  balabala;
});
S
surahe#2·10 年前
引用 SinalVee使用的时候

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

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

S
SinalVee#3·10 年前

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

G
giscafer#4·10 年前

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

参与回复
登录后即可参与回复。登录