Асинхронность событийной модели в JavaScript

Вы знаете, что с помощью метода addEventListener можно подписаться на различные события, возникающие в элементах страницы. К примеру, подпишемся на клик по некоторому элементу, ссылка на который хранится в переменной elem:

javascriptelem.addEventListener('click', function() {
  console.log('1');
});

console.log('2');

В приведенном коде сначала выполнится второй вывод в консоль. Когда же выполнится первый? Когда-то: выполнение этого кода ожидает случившегося события - клика на элемент. Как только это произойдет, так наш код и выполнится.

Задание 1

Расскажите, в каком порядке выведутся числа в консоль:

javascriptelem1.addEventListener('click', function() {
  console.log('1');
});
elem2.addEventListener('click', function() {
  console.log('2');
});