1秒ごとに別の関数を呼び出すタイマーを作成しようとしています。だから、forループ内でsetIntervalを使用しています。setIntervalが最初の呼び出しをスキップし、Javascriptが呼び出されたときにClearintervalが停止しない
forループで最初のループスルー中にsetIntervalがスキップされています。 理由がわかりません。
また、 私はそれがゼロ以下になると間隔をクリアする機能を持っています。停止条件内でメッセージを印刷すると、その出力はクリアされますが、clearIntervalはスキップされます。
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);
}
}
あなたのVAR 'timerloop'があなたのループ –
のためにインデントがあまりにも上書きされるの各反復によって上書きされる... – trincot
は、私はあなたが' setInterval'を通過さ秒間何とか待つことを仮定してもよいと思うが、それはdoesnの'for'ループは直ちに全ての反復処理を行い、' setInterval'タイマーをいくつも生成しています。これらのタイマーは全てtickを開始し、これまでどおり継続します。 'clearInterval'コードは決して実行されません。 – trincot