作 ▸
JavaScriptのイベントは非同期じゃない (EventTarget)
あまりにも、あまりにも当たり前なのにわからなかった
EventTarget
を初めて使ったのだが
const eventTarget = new EventTarget();
let count = 0;
eventTarget.addEventListener('foo', () => {
console.log('!1', count);
const end = Date.now() + 1000;
while (Date.now() < end) {
++count;
}
});
eventTarget.dispatchEvent(new Event('foo'));
console.log('!2', count);
!1 0
!2 9815099
あ、こうなるんだ
なんかイベントって非同期なイメージがあって、てっきり !2
が先に出てくるのかと
バカなこと考えてたと思って忘れましょうね