跳到主要内容
CNode

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

问答
Ssurahe发布于 10 年前最后回复 10 年前
450980

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)

G
giscafer#410 年前

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

S
SinalVee#310 年前

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

S
surahe#210 年前
引用 SinalVee使用的时候

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

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

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

使用的时候

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

参与回复

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