没有结果的交易

Transaction with no result

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

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;

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

您必须return来自回调的承诺。

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