Buckets:
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.debounceTime = void 0; | |
| var async_1 = require("../scheduler/async"); | |
| var lift_1 = require("../util/lift"); | |
| var OperatorSubscriber_1 = require("./OperatorSubscriber"); | |
| function debounceTime(dueTime, scheduler) { | |
| if (scheduler === void 0) { scheduler = async_1.asyncScheduler; } | |
| return lift_1.operate(function (source, subscriber) { | |
| var activeTask = null; | |
| var lastValue = null; | |
| var lastTime = null; | |
| var emit = function () { | |
| if (activeTask) { | |
| activeTask.unsubscribe(); | |
| activeTask = null; | |
| var value = lastValue; | |
| lastValue = null; | |
| subscriber.next(value); | |
| } | |
| }; | |
| function emitWhenIdle() { | |
| var targetTime = lastTime + dueTime; | |
| var now = scheduler.now(); | |
| if (now < targetTime) { | |
| activeTask = this.schedule(undefined, targetTime - now); | |
| subscriber.add(activeTask); | |
| return; | |
| } | |
| emit(); | |
| } | |
| source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { | |
| lastValue = value; | |
| lastTime = scheduler.now(); | |
| if (!activeTask) { | |
| activeTask = scheduler.schedule(emitWhenIdle, dueTime); | |
| subscriber.add(activeTask); | |
| } | |
| }, function () { | |
| emit(); | |
| subscriber.complete(); | |
| }, undefined, function () { | |
| lastValue = activeTask = null; | |
| })); | |
| }); | |
| } | |
| exports.debounceTime = debounceTime; | |
| //# sourceMappingURL=debounceTime.js.map |
Xet Storage Details
- Size:
- 1.73 kB
- Xet hash:
- fcc22d44eaabd52c0174a2e78c54cb9b9a4196b948a3ab68c4bbdae21fa00012
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.