从事务中获取结果
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
模型,除非您使用关系(在这种情况下可能是 hasOne
或 hasMany
):
bookshelf.transaction(function (t) {
return User.forge(data)
.save(null, { transacting: t })
.tap(function (user){
users.related('rooms').create({}, { 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 });
})
})
房间完成后添加到链中。
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
模型,除非您使用关系(在这种情况下可能是 hasOne
或 hasMany
):
bookshelf.transaction(function (t) {
return User.forge(data)
.save(null, { transacting: t })
.tap(function (user){
users.related('rooms').create({}, { transacting: t });
})
})