交易没有结果

时间:2015-11-10 15:49:42

标签: express bookshelf.js knex.js

我正在使用Bluebird Promise,我正在尝试进行事务,保存用户记录,然后使用userId将新记录插入房间表:

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;

但我没有得到任何成功或错误回复。

1 个答案:

答案 0 :(得分: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 });
    })
})