diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js')
| -rw-r--r-- | node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js b/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js new file mode 100644 index 0000000..7e4f96c --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js @@ -0,0 +1,44 @@ +import { asyncScheduler } from '../scheduler/async'; +import { operate } from '../util/lift'; +import { createOperatorSubscriber } from './OperatorSubscriber'; +export function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { scheduler = asyncScheduler; } + return 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(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; + })); + }); +} +//# sourceMappingURL=debounceTime.js.map
\ No newline at end of file |
