JavaScript로 작업할 때 시간 초과와 같은 비동기 작업의 흐름을 제어해야 할 수 있습니다. 여기에서는 활성 시간 초과를 일시 중지 및 재개하는 방법과 현재 시간 초과의 남은 시간을 검색하는 방법을 살펴봅니다.
시간 초과를 일시 중지하려면 래퍼를 활용할 수 있습니다. window.setTimeout 호출을 가로채서 필요한 기능을 제공하는 함수입니다. 래퍼 함수인 Timer는 콜백 함수와 지연을 인수로 받아 남은 시간의 일시 중지, 재개, 추적을 처리합니다.
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 start = Date.now();
var t = setTimeout("dosomething()", 5000);
var remaining = (start 5000) - Date.now();
그러나 제한 시간이 일시 중지되었다가 재개된 경우 이 계산이 정확하지 않을 수 있다는 점에 유의하는 것이 중요합니다. 앞서 제공한 Timer 래퍼 기능에서는 남은 시간을 추적하고 이에 따라 업데이트하여 남은 시간을 검색하는 보다 안정적인 방법을 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3