1 месяц назад
Язык JavaScript - Планирование: setTimeout и setInterval
Вы когда-нибудь задумывались, как JavaScript выполняет код "через 5 секунд", если он однопоточный? Или почему setTimeout(fn, 0) не выполняется мгновенно? Или как остановить бесконечный интервал, который уже запущен? Добро пожаловать в мир асинхронного планирования. setTimeout и setInterval - это два кита, на которых держится отложенное выполнение в JavaScript. Они кажутся простыми: "запланируй эту функцию на потом". Но за этой простотой скрывается Event Loop, макрозадачи и множество подводных камней...