3
我正在測試ES7 async/await proposal使用this module來模擬它。我試圖讓knex.js交易與他們一起發揮出色,作爲一個起點。使用異步/等待提交/回滾knex事務
示例代碼:
async function transaction() {
return new Promise(function(resolve, reject){
knex.transaction(function(err, result){
if (err) {
reject(err);
} else {
resolve(result);
}
});
});
}
// Start transaction from this call
insert: async (function(db, data) {
const trx = await(transaction());
const idUser = await(user.insertData(trx, data));
return {
idCidUserstomer: idUser
}
})
我如何commit()
或rollback()
如果交易成功或失敗?
1注意這裏的東西來實現這一點 - 對於一些奇怪的原因是,將'return {idCustomer:idCustomer}'部分放在'try'塊內部會使其變得很好,否則會掛起,如'try..catch'下面的部分不運行 –
嘗試使用在trx.commit和trx.rollback上等待,否則不太確定。 –
'嘗試在trx.commit/trx.rollback上使用await - 沒有工作,但我會在這裏發掘並發表評論。 –