MCPcopy Create free account
hub / github.com/ReactiveX/rxjs / #enqueueTimer

Method #enqueueTimer

packages/test/src/virtual-time.ts:555–578  ·  view source on GitHub ↗
(entry: TimerEntry)

Source from the content-addressed store, hash-verified

553 }
554
555 #enqueueTimer(entry: TimerEntry): void {
556 const generation = entry.generation;
557 this.#enqueue({
558 id: entry.id,
559 kind: 'timer',
560 dueTime: entry.dueTime,
561 active: () => entry.active && entry.generation === generation && !entry.controller.signal.aborted,
562 run: () => {
563 if (entry.interval === undefined) {
564 entry.active = false;
565 this.#timers.delete(entry.id);
566 }
567 const result = entry.callback(...entry.args);
568 if (isPromiseLike(result)) {
569 this.#trackPromise(Promise.resolve(result));
570 }
571 if (entry.interval !== undefined && entry.active) {
572 entry.generation++;
573 entry.dueTime += entry.interval;
574 this.#enqueueTimer(entry);
575 }
576 },
577 });
578 }
579
580 #clearTimer(handle?: unknown): void {
581 const id = timerHandleToNumber(handle);

Callers 1

#createTimerMethod · 0.95

Calls 4

#enqueueMethod · 0.95
#trackPromiseMethod · 0.95
isPromiseLikeFunction · 0.85
resolveMethod · 0.65

Tested by

no test coverage detected