はい、それは 1000ms タイマーのせいです。10 に設定すると、無効にするのに 10 ミリ秒かかります。無効にして開始する必要がある場合blitz.disabled = true
は、間隔コールバックからコードを移動 (またはコピー) します。
var disabledStartTimer = setInterval(disabledTimer, 1000);
var start = 1; // set to 1 to maintain consistency (i.e. call blitz.disabled = true the same amount of times as the original code.
blitz.disabled = true;
function disabledTimer() {
if (start > 5) {
clearInterval(disabledStartTimer);
console.log("disabled timer stopped");
blitz.disabled = false;
}
else {
blitz.disabled = true;
start++;
}
}
より複雑なことを行う必要があり、このコードは単なる例である場合は、複雑なステートメントを関数内にラップして、間隔の外側と内側から呼び出すことができます。
var disabledStartTimer = setInterval(disabledTimer, 1000);
var start = 1; // set to 1 to maintain consistency (i.e. call blitz.disabled = true the same amount of times as the original code.
function disableBlitz() {
blitz.disabled = true;
}
disableBlitz();
function disabledTimer() {
if (start > 5) {
clearInterval(disabledStartTimer);
console.log("disabled timer stopped");
blitz.disabled = false;
}
else {
disableBlitz();
start++;
}
}