@GloomySpodgeBob
Ничего особенного , просто начинающий фронт енд.

Что сделать что бы работало?

Я только учу js и уже час мучаюсь с этим. Нужно что бы был отсчет 4... 3... 2.. 1.. а вместо этого при нажатии кнопки сразу вымигивает цифра 1. В чем проблема.
function kakafka() {
            var a = document.getElementById("out");
            setTimeout(function() { a.innerHTML = "4" }, 2000);
            setTimeout(function() { a.innerHTML = "3" }, 2000);
            setTimeout(function() { a.innerHTML = "2" }, 2000);
            setTimeout(function() { a.innerHTML = "1" }, 2000);
        }
  • Вопрос задан
  • 1326 просмотров
Решения вопроса 2
profesor08
@profesor08 Куратор тега JavaScript
Все просто. Можно заморочиться с таймаутами и рекурсиями как в примерах выше. А можно сделать логически правильно - интервалом, как в этом примере:
var counter = 4;
var inter = setInterval(function() {
  a.innerHTML = counter--;
  if (!counter) clearInterval(inter);
}, 2000);
Ответ написан
@bitaz
setTimeout(function() { a.innerHTML = "4" }, 2000);
setTimeout(function() { a.innerHTML = "3" }, 4000);

function kakafka() {
            var a = document.getElementById("out");
            setTimeout(function() { a.innerHTML = "4" }, 2000);
            setTimeout(function() { a.innerHTML = "3" }, 4000);
            setTimeout(function() { a.innerHTML = "2" }, 6000);
            setTimeout(function() { a.innerHTML = "1" }, 8000);
        }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HoHsi
@HoHsi
Смотрите, JS асинхронный. Это значит, все функции, которые имеют "время простоя" запускаются одновременно (в вашем случае это setTimeout. Это асинхронная функция).
В вашем коде все setTimeout инициализируются и запускаются. А после все через равный промежуток времени (2 с), исполняются.

Если вы пришли из питона или PHP (или другого языка без Event Loop). То там все функции (pause, sleep и т.д) останавливают выполнение кода. В JS же они просто запускаются и продолжается выполнение.

Возможно будет полезно:
javascript.ru/unsorted/async
https://www.google.ru/webhp?sourceid=chrome-instan...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы