JavaScript 시간 초과 일시 중지 및 재개
JavaScript에서 setTimeouts 작업을 할 때 이를 일시 중지하고 재개하는 기능은 다양한 시나리오에서 유용할 수 있습니다. 지연이 구성되었지만 실행 전 또는 비동기 작업이 완료될 때까지 기다리기 위해 일시 중지가 필요한 상황이 발생할 수 있습니다.
사용자 정의 래퍼를 사용하여 시간 초과 일시 중지 및 재개
현재 시간을 저장하고 남은 기간을 계산하는 대신 일시 중지 및 재개 기능을 제공하는 window.setTimeout 주위에 사용자 정의 래퍼를 생성할 수 있습니다. 이 접근 방식은 더욱 우아하고 재사용 가능한 솔루션을 제공합니다.
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(); };
이 사용자 정의 Timer 클래스를 사용하면 필요에 따라 시간 초과를 일시 중지하고 재개할 수 있습니다. 이를 사용하려면 콜백 함수와 지연으로 초기화한 다음 필요에 따라 Pause() 또는 Resume() 메서드를 호출하세요.
예:
var timer = new Timer(function() { alert("Done!"); }, 1000); timer.pause(); // Perform asynchronous operations or other tasks timer.resume();
참고: 이 사용자 정의 래퍼는 일시 중지된 타이머의 남은 시간을 검색하는 방법을 제공하지 않습니다. 또는 남은 시간을 추적하고 getTimeRemaining() 메소드를 제공하는 보다 포괄적인 래퍼를 구현할 수도 있습니다.
위 내용은 JavaScript에서 시간 초과를 효율적으로 일시 중지하고 재개하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!