Express 没有结果的交易

Express 没有结果的交易,express,bookshelf.js,knex.js,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 })

我正在使用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;

但是我没有收到任何成功或错误的回复。

您必须从回调中返回承诺

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 });
    })
})