![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/rxjs/src/internal/scheduled/ |
import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; import { Subscription } from '../Subscription'; import { iterator as Symbol_iterator } from '../symbol/iterator'; export function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) { if (!input) { throw new Error('Iterable cannot be null'); } return new Observable<T>(subscriber => { const sub = new Subscription(); let iterator: Iterator<T>; sub.add(() => { // Finalize generators if (iterator && typeof iterator.return === 'function') { iterator.return(); } }); sub.add(scheduler.schedule(() => { iterator = input[Symbol_iterator](); sub.add(scheduler.schedule(function () { if (subscriber.closed) { return; } let value: T; let done: boolean; try { const result = iterator.next(); value = result.value; done = result.done; } catch (err) { subscriber.error(err); return; } if (done) { subscriber.complete(); } else { subscriber.next(value); this.schedule(); } })); })); return sub; }); }