【问题标题】:Wait for Rethinkdb promise to return a result before returning parent function在返回父函数之前等待 Rethinkdb 承诺返回结果
【发布时间】:2016-07-01 00:53:28
【问题描述】:

我正在调用一个函数,该函数在查询数据库后返回一个对象。但我正在努力让函数在返回最终数据之前等待数据库返回结果。

请有人建议如何等待数据库查询完成?

addBasket: function(prodId, cookie) {
   var nextCookie = cookie;
   db.table('Events').filter({id: prodId}).pluck('eventName').run().then(function(result){
       newData.prodName = result[0].eventName;
       nextCookie.basket.push(newData);
       return nextCookie;
   }).error(function(err){
       return;
   })
}

【问题讨论】:

  • 你会想要return来自addBasket的承诺,这样你就可以等待它。

标签: javascript node.js rethinkdb


【解决方案1】:

您需要让 addBasket 返回一个承诺

var funcs = {
    addBasket: function(prodId, cookie) {
       var nextCookie = cookie;
       return new Promise(function(resolve, reject){
         db.table('Events').filter({id: prodId}).pluck('eventName').run().then(function(result){
             newData.prodName = result[0].eventName;
             nextCookie.basket.push(newData);
             resolve(nextCookie);
         }).error(reject)
      });
    }
}

那你就可以了

funcs.addBasket(..args).then(function(nextCookie){....})

【讨论】:

    猜你喜欢
    • 2021-08-15
    • 2017-02-03
    • 2019-10-20
    • 2018-09-29
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多