JavaScript · Senior · Запитання 64 з 75
Чому планувальники (наприклад, у React) використовують MessageChannel, а не setTimeout(fn, 0)?
- ✓Правильна відповідь: Надсилання повідомлення планує макрозадачу без обмеження ~4 мс у вкладених таймерів
- 2
MessageChannelвиконує код у воркері - 3
setTimeoutне працює у фонових вкладках
Пояснення
Вкладені виклики setTimeout за специфікацією HTML обмежені щонайменше 4 мс. Подія повідомлення поступається браузеру для рендера й введення, а потім швидко продовжує.