从事务中获取结果

Getting result from transaction

如何取回用户记录,而不是下面交易的房间记录?

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

房间完成后添加到链中。

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

使用Promise#tap.

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

请注意,它不会附加到 User 模型,除非您使用关系(在这种情况下可能是 hasOnehasMany):

bookshelf.transaction(function (t) {
    return User.forge(data)
    .save(null, { transacting: t })
    .tap(function (user){
        users.related('rooms').create({}, { transacting: t });
    })
})