을 내장 스로틀 방법.
직접 제작하는 것은 어렵지 않습니다. 심플 사용
ko.subscribable.fn.throttle = function(throttleTimeObservable) {
var subscribable = this;
var throttledObservable = ko.observable();
var timeoutHandle = null;
if (ko.isObservable(throttleTimeObservable)) {
throttletimeObservable.subscribe(function() { clearTimeout(timeoutHandle) });
}
subscribable.subscribe(function(val) {
clearTimeout(timeoutHandle);
throttleTime = ko.utils.unwrapObservable(throttleTimeObservable);
timeoutHandle = setTimeout(function() { throttledObservable(val); }, throttleTime);
});
return throttledObservable;
}
: 예를 들어, 다음은 의지에 따라 변경 될 수 있습니다 관찰하는 A 스로틀 시간을 통과, 당신이 어떤 관찰에 .throttle 호출 할 수 있도록 몇 가지 코드의
// Usage:
var existingObservable = ...;
var throttleTime = ko.observable(500);
var throttled = existingObservable.throttle(throttleTime);
// Change the throttle willy nilly!
throttleTime(1000);
이와 같이 많은 것을하고 있다면 (조절하여 서로 다른 관측치를 구성) Rx.js에 관심이있을 수 있습니다.
나는 그것이 스로틀 익스텐더의 한계라고 말할 수는 없지만, 관찰 가능한 익스텐션의 작동 방식에 대한 제한 사항. 아마도 관측 가능을 검사하고 그에 따라 시간을 조정할 수있는 새로운 스로틀 확장을 만들 수 있습니다. –