有没有人知道确保从相同的事件处理程序开始调度事件监听器的任何技术?
以下是一个例子:
form.addEventListener('submit', function(e) {
console.log('submitting');
});
form.addEventListener('submit', function(e) {
if (form.getAttribute('submitting')) return true;
e.preventDefault();
e.stopImmediatePropagation();
setTimeout(function() {
console.log('submit');
form.setAttribute('submitting', 'submitting');
// some "re-submit" dispatch logic
dispatch(form, 'submit');
}, 0);
});
form.addEventListener('submit', function(e) {
console.log('submitted');
e.preventDefault();
});
如果按下提交按钮,您将获得:
submitting
submit
submitting
submitted
这不太理想,能够得到它是很好的:
submitting
submit
submitted
由于这将是库的一部分,请假设您无法修改事件前后处理程序。