gpt4 book ai didi

javascript - 书架JS : Multiple functions in a transaction

转载 作者:行者123 更新时间:2023-12-03 05:00:30 27 4
gpt4 key购买 nike

我正在尝试将多个函数包装在一个事务中。虽然它没有抛出任何错误,但事务没有提交。

下面是示例片段。

function doSomething(ids){
bookshelf.transaction(function(trx){
if(someCondition){
new Service().save({ 'name': service.name },{transacting:trx}).then(function(){
doSomeDBUpdate1(ids,trx);
});

}else{
doSomeDBUpdate1(ids,trx);
}
})
}

function doSomeDBUpdate1(ids,trx){
new accounts({ id: accountId }).services().attach(serviceIds,{transacting:trx}).then(function(){
//do something
})
}

最佳答案

事务不知道您何时完成向其输入新查询...所以现在它永远不会提交。

这应该有效:

function doSomething(ids){
bookshelf.transaction(function(trx){
if(someCondition){
return new Service()
.save({
'name': service.name
}, {transacting:trx})
.then(function(){
return doSomeDBUpdate1(ids,trx);
});
} else {
return doSomeDBUpdate1(ids,trx);
}
})
}

function doSomeDBUpdate1(ids,trx){
return new accounts({ id: accountId })
.services()
.attach(serviceIds,{transacting:trx})
.then(function() {
// do something... if async remember to return the promise
});
}

关于javascript - 书架JS : Multiple functions in a transaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com