From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../rxjs/src/internal/scheduled/scheduleArray.ts | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 node_modules/rxjs/src/internal/scheduled/scheduleArray.ts (limited to 'node_modules/rxjs/src/internal/scheduled/scheduleArray.ts') diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts b/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts new file mode 100644 index 0000000..ea8fa24 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts @@ -0,0 +1,27 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; + +export function scheduleArray(input: ArrayLike, scheduler: SchedulerLike) { + return new Observable((subscriber) => { + // The current array index. + let i = 0; + // Start iterating over the array like on a schedule. + return scheduler.schedule(function () { + if (i === input.length) { + // If we have hit the end of the array like in the + // previous job, we can complete. + subscriber.complete(); + } else { + // Otherwise let's next the value at the current index, + // then increment our index. + subscriber.next(input[i++]); + // If the last emission didn't cause us to close the subscriber + // (via take or some side effect), reschedule the job and we'll + // make another pass. + if (!subscriber.closed) { + this.schedule(); + } + } + }); + }); +} -- cgit v1.2.3