首页 > 解决方案 > Javascript事件监听回调函数应该在回调队列中等待

问题描述

这是我的js代码,

function doSomething() { 

  const ele = document.getElementById('a');

  ele.addEventListener('click', () => {
    console.log('clicked');
  });

  console.log('before');

  ele.click();

  console.log('after');
}
doSomething()

我的理解是 - 如果事件监听器被触发,相应的回调函数将在回调队列中等待,直到调用堆栈变空,然后才被执行

如果这是正确的,则此代码的输出应按此顺序正确 -之前、之后、单击

但这里的实际输出是 -之前,点击,之后

有人可以澄清一下吗

标签: javascriptasynchronouscallbackevent-listenercallstack

解决方案


推荐阅读