如何在 knex 事务完成时执行操作
How can I perform an action on completion of a knex transaction?
我有一个 knex 事务,我正在执行操作并将事务引用传递给其他方法,在这些方法中,我想添加事务完成后将发生的操作。
对于蓝鸟承诺的例子,我想要这样的东西
function a () {
return knex.transaction(function(trx) {
trx("blah").select().where("fu","bar")
.then(function(res) {
b(trx);
}).then(trx.commit)
.catch(trx.rollback);
}
}
function b(trx) {
return trx("blah").select().where("fu","bar")
.then(function(res) {
// This is where I want to add code to occur after the trx commits
trx.then(function(){//Do stuff after trx commits})
}
}
解决方案很简单 我只是忽略了它:存储交易承诺并将其传递给内部方法,如下所示:
function a () {
trxPromise = knex.transaction(function(trx) {
trx("blah").select().where("fu","bar")
.then(function(res) {
b(trxPromise,trx);
}).then(trx.commit)
.catch(trx.rollback);
}
return trxPromise;
}
function b(trxPromise,trx) {
return trx("blah").select().where("fu","bar")
.then(function(res) {
// This is where I want to add code to occur after the trx commits
trxPromise.then(function(){//Do stuff after trx commits})
}
}
相关文章:
- 在操作完成时执行函数
- jQuery无法正确完成提交,并在提交时执行意外操作
- 当 document.ready 中的函数完成时执行 js 函数
- 当一系列 jquery ajax 调用完成时执行一个函数(!)
- 创建一个超链接(或按钮),用于执行 python 脚本,然后在脚本完成时重定向
- 当第一个函数完成没有回调参数时执行第二个函数
- 在上一个函数完成时执行 JavaScript 函数
- 如何在 knex 事务完成时执行操作
- 使用 jQuery 完成单独函数时执行警报
- 如何将 Google 地方自动完成功能配置为仅在输入字段中至少有 n 个字母时执行请求
- 在函数完成时执行代码
- 如何限制keypress/keyup/keydown操作并仅在ajax调用完成时执行
- 如何在打印完成或取消时执行某些JavaScript
- AjaxControlToolkit自动完成:如何自动使用值并在选择值时执行某些操作
- AJAX调用未完成时停止执行JS函数
- jQuery -当所有Ajax请求完成时执行一些操作
- 如何仅在前一个单击完成时执行下一个单击
- Jquery:在一个函数完成时执行另一个函数
- 当嵌套异步函数完成时执行某些操作
- 当所有异步处理程序完成时执行javascript函数