почему alert выполняеnся раньше предыдыщих строк?

При нажатом Alt + ПКМ происходит вывод в консоль HTML элемента и ID в алерт Я хочу чтоб в консоль выводилось раньше но почему-то так не происходит.

document.addEventListener('contextmenu', function(event) {
  if (event.altKey) {
    event.preventDefault();
    const targetElement = event.target;
    const elementId = targetElement.id;

    if (targetElement && targetElement.id) {

      console.log(targetElement);
      // копируем в буфер в обход блокиривки
      var inp = document.createElement('input')
      inp.value = elementId
      document.body.appendChild(inp)
      inp.select()
      if (document.execCommand('copy')) {
        //выводим
        alert(elementId);
      }
      document.body.removeChild(inp)
    }
  }
});
<button id="DevON" style="">ВКЛ. </button>


Ответы (1 шт):

Автор решения: ksa

Я хочу чтоб в консоль выводилось раньше но почему-то так не происходит.

Встречал такое объяснение этому эффекту...

По сути: технически console.log() вызывается первым. Однако перерисовка браузера или обновление консоли также занимает некоторое время. Прежде чем он успевает обновиться, уже срабатывает alert(), сообщающий: «Остановите всё до моего подтверждения». Поэтому сообщение в console.log отправляется, но визуальное подтверждение не приходит вовремя.

Пример

console.log("Привет!");
setTimeout(() => alert("Чмоки!"), 0);

→ Ссылка