Обычно браузер представляют так: у каждой вкладки свой поток и свой event loop, а промис срабатывает раньше таймера, потому что микрозадачи приоритетнее макрозадач. На практике этого хватает, но в стандарте HTML всё устроено иначе. Вот три примера: Зависшая вкладка может подвесить соседнюю…
Среда исполнения JavaScript в браузере по стандарту HTML: агенты, event loop, task'и и микрозадачи
Это краткое изложение. Полный текст материала доступен на сайте источника.