Войти Регистрация
Фронтенд

28. Порядок вывода: queueMicrotask, return Promise и таймеры

Сложная

Что выведет код? Запишите числа по порядку, по одному на строку.

В работе: Разбор, почему обновление баланса отрисовалось на кадр позже, чем ожидалось.

Как проверяем Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
event loopмикрозадачиasync/await

Источник: обзор транскриптов интервью: Т‑Банк, порядок вывода event loop. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.
  1. console.log('1');
  2. setTimeout(() => {
  3. console.log('2');
  4. Promise.resolve().then(() => console.log('3'));
  5. }, 0);
  6. setTimeout(() => console.log('4'), 0);
  7. queueMicrotask(() => console.log('5'));
  8. (async () => {
  9. console.log('6');
  10. await new Promise((r) => setTimeout(r, 0));
  11. console.log('7');
  12. })();
  13. Promise.resolve()
  14. .then(() => { console.log('8'); return Promise.resolve(); })
  15. .then(() => console.log('9'));
  16. Promise.resolve()
  17. .then(() => console.log('10'))
  18. .then(() => console.log('11'))
  19. .then(() => console.log('12'));
  20. console.log('13');