- объявили функцию
- зарядили первый таймаут: он через 1 секунду вызовет
showNumber(1)
- ... пауза 1c, ничего не происходит
- вызвалась
showNumber(1)
- вывела в консоль "1", и зарядила новый таймаут, уже с showNumber(2)
. Убедились, что 2 не равно 6.
- ... пауза 1с, опять скукота, ничего не происходит
- вызвалась
showNumber(2)
, вывели в консоль "2", зарядили таймаут (3)
- ... ... ...
- наконец поднялся счётчик до 5. Всё то же: зарядили таймаут, прошла 1 секунда,
вызвалась showNumber(5)
Тоже выводит в консоль "5", заряжает таймаут (6), но на этот раз срабатывает условие 6 === 6
, и раз так — тут же гасит свежезаряженный таймаут, ибо нечего ему срабатывать.
- Занавес.
Наверное, не уловили пока, как работает
setTimeout()
. Вызов
setTimeout()
отрабатывает сразу и выполнение идёт дальше. Но этот вызов
не выполняет, а лишь откладывает на потом – задачу вызова какой-то функции с параметрами.
Пишет письмо с заданием, запечатывает в конверт и относит на почту. И идёт дальше по своим делам. А когда-то там письмо дойдёт, наконец – его распечатают и выполнят задание.