2015-11-10 173 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 }); 
    }) 
})