>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 setTimeout()을 일시 중지하고 다시 시작하는 방법은 무엇입니까?

JavaScript에서 setTimeout()을 일시 중지하고 다시 시작하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-23 00:55:03329검색

How to Pause and Resume setTimeout() in JavaScript?

JavaScript에서 setTimeout() 일시 중지 및 재개

JavaScript에서 setTimeout()을 사용하면 지정된 시간 이후에 함수가 실행되도록 예약할 수 있습니다. 지연. 그러나 시간 초과 실행을 일시 중지하거나 재개해야 하는 시나리오가 발생할 수 있습니다.

setTimeout() 일시 중지 및 재개

실행 중인 시간 초과를 일시 중지하려면 window.clearTimeout() 함수를 사용할 수 있습니다. 인수로 지워질 시간 초과 ID를 사용합니다. 일시 중지한 후에는 타이머.resume() 메서드를 사용하여 시간 초과를 재개할 수 있습니다.

일시 중지/재개 기능이 있는 사용자 정의 타이머

대체 접근 방식은 사용자 정의 타이머를 생성하는 것입니다. 일시정지 및 재개 메소드가 있는 타이머 객체입니다. 이를 통해 시간 초과를 보다 직접적으로 제어할 수 있습니다. 다음은 이러한 타이머의 예입니다.

<code class="javascript">var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        timerId = null;
        remaining -= Date.now() - start;
    };

    this.resume = function() {
        if (timerId) {
            return;
        }

        start = Date.now();
        timerId = window.setTimeout(callback, remaining);
    };

    this.resume();
};</code>

setTimeout()에서 남은 시간 가져오기

안타깝게도 남은 시간을 가져오는 기본 제공 방법은 없습니다. setTimeout(). 그러나 위에 설명된 접근 방식을 사용하면 시작 시간을 수동으로 저장하고 타이머를 일시 중지할 때 남은 시간을 계산할 수 있습니다.

setTimeout()을 사용자 정의 타이머 개체에 래핑하거나 수동 시간 계산 접근 방식을 사용합니다. , JavaScript에서 시간 초과에 대한 일시 중지 및 재개 기능을 구현할 수 있습니다.

위 내용은 JavaScript에서 setTimeout()을 일시 중지하고 다시 시작하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.