Skip to content

Instantly share code, notes, and snippets.

@Jeneko
Jeneko / riddle.js
Last active July 29, 2023 18:34
Where event listeners go - in macro- or in microtask queue
Promise.resolve('1').then(console.log);
document.addEventListener('testEvent', () => console.log('2'));
document.dispatchEvent(new Event('testEvent'));
console.log('3')
Promise.resolve('4').then(console.log);
// Related question at StackOverflow
// https://stackoverflow.com/questions/71324258/the-callback-function-of-addeventlistener-is-queued-in-macro-task-queue-in-event
// EXPLANATION: dispatchEvent invokes event handlers SYNCHRONOUSLY!