JavaScript · Senior · Pytanie 64 z 75
Dlaczego schedulery (np. w React) używają MessageChannel zamiast setTimeout(fn, 0)?
- ✓Poprawna odpowiedź: Wysłanie wiadomości planuje makrozadanie bez ograniczenia ~4 ms zagnieżdżonych timerów
- 2
MessageChanneluruchamia kod w workerze - 3
setTimeoutnie działa w kartach w tle
Wyjaśnienie
Zagnieżdżone wywołania setTimeout są według specyfikacji HTML ograniczane do co najmniej 4 ms. Zdarzenie wiadomości oddaje przeglądarce czas na renderowanie i wejście, a potem szybko kontynuuje.