Я нашел пример кода на этом сайте с задержкой js. Когда я запускаю отладку js (после нажатия кнопки) все работает нормально. Каждое обновление отображается на странице после соответствующей задержки. Но когда я удаляю отладку и запускаю скрипт (после нажатия кнопки), он как бы запускает весь код и выдает только последнее обновление. Я пробовал также функцию setTimeout (), но происходит то же самое. Когда я тестирую сам код задержки (без другого кода), он работает нормально.
Имеет ли это какое-либо отношение к асинхронной природе javascript? Если другие люди используют код задержки, я должен что-то упустить ... что это может быть?
код ниже:
id = " lottoNbr "style =" margin-left: 40px; " onclick = "getRandom (8,2)" alt = "доллар> знаки">
событие клика
выше, javascript ниже:
function getRandom(y1, z1) {
var y2=y1; //this is the maximum random number generated
var z2 = z1; // determined which game is being played
var choice, choice1;
var i, count;
//f = setInterval(rNbr,50);
/* pick 10 numbers from 1 to 9 slowly and return the last value to the screen three times*/
function rNbr() {
choice = 1 + (Math.floor(Math.random() * y2));
choice1 = choice.toString();
gameName();
}
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
function gameName() {
switch(z2) {
//case 2 means big three game, case 3 meand giant 4 game, etc
case 2:
if (i == 0) {
document.getElementById("3lottoNbr1").innerHTML = choice1;
} else if (i == 1) {
document.getElementById("3lottoNbr2").innerHTML = choice1;
} else {
document.getElementById("3lottoNbr3").innerHTML = choice1;
}
break;
case 3: //giant 4
if (i == 0) {
document.getElementById("4lottoNbr1").innerHTML = choice1;
} else if (i == 1) {
document.getElementById("4lottoNbr2").innerHTML = choice1;
} else if (i == 1) {
document.getElementById("4lottoNbr3").innerHTML = choice1;
} else {
document.getElementById("4lottoNbr4").innerHTML = choice1;
}
break;
}
}
generate random numbers spin style in each of the game windows
setTimeout(rNbr, 500);
for(i=0; i<=z2; i++) {
for(count = 0; count <= 2; count++) {
rNbr();
document.getElementById("proof").innerHTML = count;
sleep(2000);
}
sleep(1000);
}
}
</script>