有人可以告诉我,在完成所有提交事件回调后如何调用该函数?我有这样的东西,但我需要在提交回调的最后。
$('#form').on('submit', function () {
tour.next();
});
问题是,还有其他回调在此之后触发。那么,如何在提交调用堆栈的最后添加处理程序? 谢谢。
答案 0 :(得分:0)
如果tour.next();
和其他回调是同步的,那么只需调用setTimeout
即可在最后运行一个函数:
setTimeout(somethingToRunAtEnd);
并且在所有其他处理程序完成后运行。
如果他们是异步的,那么请确保他们返回Promise,然后Promise.all
返回每个人:
let promises;
$('.xxx').on('click', function() {
promises = [alert('callback one')];
});
$('.xxx').on('click', function() {
promises.push(alert('callback two'));
Promise.all(promises).then(() => {
console.log('all asyncs finished');
});
});
(非常hacky,简单地分配一个处理程序而不是很多)