我正在使用Sequelize交易,并希望知道如何在继续批量创建之前进行批量更新。
我目前的代码是这样的:
return sequelize.transaction(function(t){
return sequelize.Promise.each(arrToUpdate, function(itemToUpdate){
model.update(itemToUpdate, { transaction: t })
});
//How to do a sequential bulk create after the bulk update is successful in sequelize
//transaction?
//Bulk Create code would be return model.bulkCreate(itemsArray, { transaction: t })
});
答案 0 :(得分:2)
我相信你只是在承诺与then
联系之后?第一行应该返回一个承诺 - 所以只需在结果上调用then
:
return sequelize.transaction(function(t){
return sequelize.Promise.each(arrToUpdate, function(itemToUpdate){
model.update(itemToUpdate, { transaction: t })
}).then((updateResult) => {
return model.bulkCreate(itemsArray, { transaction: t })
}, (err) => {
// if update throws an error, handle it here.
});
});
注意:现在你的函数将返回一个promise,所以无论你的函数调用什么,都必须使用then
来处理结果。