:javascript : 타이머 속성을 어떻게 확인합니까? 나는 다음과 같은 코드가있는 경우
var myfunc = function() { alert('wow'); };
var t=setTimeout(myfunc, 300);
타이머의 시간과 콜백을 확인하기 위해 내가 t
에 저장된 ID로 할 수있는 일이 있나요? 타이머의 속성을 직접 확인하려고하므로 실제로 단위 테스트에서 시간 초과가 될 때까지 실행하지 않아도됩니다.
:javascript : 타이머 속성을 어떻게 확인합니까? 나는 다음과 같은 코드가있는 경우
var myfunc = function() { alert('wow'); };
var t=setTimeout(myfunc, 300);
타이머의 시간과 콜백을 확인하기 위해 내가 t
에 저장된 ID로 할 수있는 일이 있나요? 타이머의 속성을 직접 확인하려고하므로 실제로 단위 테스트에서 시간 초과가 될 때까지 실행하지 않아도됩니다.
아니요, 수행 할 수 없습니다.
var timeouts = [{
fn: myfunc,
timeout: 300
}];
for(var i = 0; i < timeouts.length; i++){
timeouts[i].id = window.setTimeout(timeouts[i].fn, timeouts[i].timeout);
}
를 사용해서 그것으로 많은 일을 할 수 있도록 ID는, 브라우저 내부에 반환
것은 당신이 대신 할 수있는 것은, 다른이 같은 그들을 추적 할 수 있습니다. 그런 다음
function Timer(callback, timeout) {
this.callback = callback;
this.timeout = timeout;
this.id = window.setTimeout(callback, timeout);
}
Timer.prototype.cancel = function() {
window.clearTimeout(this.id);
}
Timer.prototype.fire = function() {
this.cancel();
this.callback();
}
그냥 타이머를 생성하고 같은 자신의 속성에 액세스 : 당신은 타이머를 시작할 때 시간과 콜백을 알고 있기 때문에, 당신은 단지뿐만 아니라 당신을 위해 모든 것을 수행하는 Timer
클래스의 전체를 포장 할 수 이 :
t = new Timer(myfunc, 300);
alert(t.timeout);