나는 현재 setInterval
메서드 내에서 일부 코드를 실행하는 함수를 가지고 있습니다. 이것은 예상대로 작동합니다. 문제는이 타이머 내에서 조건부로 코드를 실행하는 것입니다. 조건이 충족되지 않으면 다시 시도 할 때까지 시간 제한을 기다립니다. 지연을 '건너 뛰고'조건이 충족 될 때만 실행하는 방법이 있습니까?자바 스크립트 간격의 타이머 건너 뛰기
내 데모에서 단락 결과 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/입니다. –