2015-11-10 194 views
0

我使用蓝鸟承诺,我试图做一个交易,保存用户的记录,然后使用用户id插入新记录插入到表空间:交易没有结果

var promise = new Promise(
    function resolver(resolve, reject) { 
     bookshelf.transaction(function (t) { 
      User.forge(data) 
      .save(null, { transacting: t }) 
      .then(function (user){ 
       Room.forge({ userId: user.id }) 
       .save(null, { transacting: t }); 
      }) 
     }) 
     .then(function (account) { 
      resolve(account); 
     }).catch(function (err) { 
      reject(err); 
     }); 
    }); 

return promise; 

但我没有得到任何成功或返回错误响应。

回答

0

您必须从回调中返回承诺。

bookshelf.transaction(function (t) { 
    return User.forge(data) // here 
    .save(null, { transacting: t }) 
    .then(function (user){ 
     Room.forge({ userId: user.id }) 
     .save(null, { transacting: t }); 
    }) 
})