setInterval(function(){}, 200)
このコードは関数を200ミリ秒ごとに実行しますが、関数を10回だけ実行する場合はどうすればよいですか。
手伝ってくれてありがとう。
コールバックが実行されるたびに増加するカウンターを使用し、必要な実行回数に達したら、clearInterval()
を使用してタイマーを強制終了します。
var counter = 0;
var i = setInterval(function(){
// do your thing
counter++;
if(counter === 10) {
clearInterval(i);
}
}, 200);
(function(){
var i = 10;
(function k(){
// your code here
if( --i ) {
setTimeout( k, 200 );
}
})()
})()
10回実行する場合、実行する時間は200ミリ秒ごとで、200X10 = 2000
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2000);
しかし、9回しか実行されないため、さらに200ミリ秒を追加する必要があります
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2200);
または、setIntervalの前に実行できます
yourfunction();
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2000);
代わりにforループを使用するだけで、はるかに簡単です。
このコードを試してください。
for (counter=0; counter<0; counter++) {}