#javascript
#javascript
Вопрос:
Я кодирую игру, используя HTML
, CSS
и JavaScript
. И я создал функцию, которая отсчитывает p-тег в HTML-коде, но при каждом выполнении функции вычитает только одно число, поэтому мне нужно выполнять эту функцию много времени, и когда обратный отсчет равен нулю, игра заканчивается.
Я пытался вставить цикл for, но цикл for ничего не делает.
Моя JavaScript
функция :
function time() {
for (i=0;i<30;i ) {
var enem = document.getElementById("enem");
var timer = document.getElementById("timer1").innerHTML;
var timer = parseInt(timer);
var actime = timer - 1;
sleep(1000).then(() => {
timer = document.getElementById("timer1").innerHTML = actime;
if (timer===0) {
enem.parentNode.removeChild(enem);
window.location.href = ('success.html');
}
})
}
}
Я, за исключением функции result of time (), буду менять p-тег каждые 1 секунду 30 раз, но он меняется только один раз.
Комментарии:
1. можете ли вы использовать асинхронную функцию или нет?
2. Я новичок, не могли бы вы объяснить, пожалуйста?
Ответ №1:
Для этого вам следует использовать функцию setInterval в Javascript.
(function(){
var n = 30;
var tm = setInterval(countDown,1000);
var enem = document.getElementById("enem");
var timer = document.getElementById("timer1");
function countDown(){
n--;
if(n == 0){
clearInterval(tm);
enem.parentNode.removeChild(enem);
window.location.href = ('success.html');
}
timer.innerHTML = n;
}})();
<p id="enem"></p>
<p id="timer1"></p>
Комментарии:
1. Это работает, но когда оно достигает 1, обратный отсчет прекращается.
Ответ №2:
Вы ищете setInterval()
, каким образом Javascript выполняет определенное действие каждый конкретный период времени.
Опубликованный вами код не будет работать из-за неблокирующей природы Javascript, он запланирует вызов функции ожидания и перейдет к следующему циклу.
Комментарии:
1. Спасибо, так мне следует подробнее прочитать о функции setInterval() ?
2. Да, вам потребуется несколько минут, чтобы разобраться в его использовании и изучить его синтаксис. Затем он должен заменить цикл for, и больше не нужно переходить в режим ожидания. Извините меня за то, что я не набираю код, но я нахожусь на своем телефоне. Позвольте мне, как это работает.