私は現在、setInterval
メソッド内でいくつかのコードを実行する関数を持っています。これは期待どおりに動作しています。問題は、このタイマー内で条件付きでコードを実行することです。条件が満たされていない場合は、再度試行するまでタイムアウトを待機します。遅延を「スキップ」し、条件が満たされたときにのみ実行する方法がありますか?JavaScriptインターバル内のスキップタイマー
私のデモでは、段落の結果4と8の出力間に遅延があることがわかります(チェック間の遅延として)。私は全体の手順を通して一貫した遅延が存在することを望みます。
DEMOはhttps://jsfiddle.net/jdec4h0x/
var intAdd = setInterval(function() {
refIndex++
if(refIndex >= predefinedMaxLimit) {
refIndex = 0;
loopedThrough = true;
}
// if this exists then increment refIndex and try again
if (loopedThrough || !$(".myclass[data-mydata1='" + predefinedData2 + "'][data-mydata2='" + refIndex + "']").length) {
counter++;
$('p').last().after('<p>IN Cond Ref = ' + refIndex + '</p>');
// ** js code within this tiemout **
if (counter >= predefinedOutputP) clearInterval(intAdd);
}
}, 500);
もちろん、単純にタイマーをキャンセルし、新しい遅延で新しいものを作ります。 –
なぜdownvote? –
@KevinBは動作しません。タイマーの有効範囲がhttps://jsfiddle.net/jdec4h0x/1/です。 –