J'essaye de créer un temporisateur que chaque seconde il appelle une autre fonction. J'utilise donc setInterval dans une boucle for.setInterval étant ignoré le premier appel et Clearinterval ne s'arrêtant pas lorsqu'il est appelé Javascript
Le paramètre setInterval est ignoré lors de la première boucle de la boucle for. Je ne sais pas pourquoi.
Aussi, J'ai la fonction pour effacer l'intervalle quand il descend en dessous de zéro. Lorsque j'ai un message d'impression dans la condition d'arrêt, cela sort mais clearInterval est ignoré.
function changesystem(lottery, maxroundtime, firstloop) {
//loop through lottery numbers
for (var keys in lottery) {
var currentnum = lottery[keys].LotteryNum;
console.log(currentnum);
var currentclass = lottery[keys].ClassID;
//console.log(currentclass);
//display values
$('#CurrentNumber').text(currentnum);
$('#CurrentClass').text(currentclass);
//change progress bar
//every second until reaches max round time
// var loopcontrol = maxroundtime;
var loopcontrol = 5;
var timerloop = setInterval(function() {
console.log(loopcontrol);
//changetime(maxroundtime,firstloop);
loopcontrol--;
//firstloop=1;
}, 1000);
if (loopcontrol < 0) {
clearInterval(timerloop);
}
}
votre var 'timerloop' est mal par chaque itération de votre boucle –
L'indentation est frappée de plein fouet aussi ... – trincot
Je pense que vous pouvez supposer que' setInterval' attend en quelque sorte les secondes pour passer, mais il doesn 't, la boucle 'for' passera par toutes les itérations immédiatement, ayant créé autant de minuteurs' setInterval', qui commencent à cocher et continueront à le faire pour toujours. Le code 'clearInterval' ne sera jamais exécuté. – trincot