Нулевая задержка не гарантирует немедленный вызов; у цепочки вложенных таймеров браузер вводит минимальную задержку, из-за чего накапливается время.
Какая известная проблема возникает при большом количестве последовательных setTimeout с нулевым таймаутом?
Нулевая задержка не гарантирует немедленный вызов; у цепочки вложенных таймеров браузер вводит минимальную задержку, из-за чего накапливается время.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нулевая задержка не гарантирует немедленный вызов; у цепочки вложенных таймеров браузер вводит минимальную задержку, из-за чего накапливается время.
При достаточно глубокой вложенности применяется ограничение порядка 4 мс; фоновые вкладки могут ограничиваться сильнее. Это касается последовательного планирования из callback, а не обещания каждому отдельно созданному таймеру. Для плавной анимации используйте механизм кадров, а не цепочку setTimeout(0).