![]() 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/observable/ |
import { SchedulerLike, SchedulerAction } from '../types'; import { Subscriber } from '../Subscriber'; import { Subscription } from '../Subscription'; import { Observable } from '../Observable'; import { asap } from '../scheduler/asap'; import { isNumeric } from '../util/isNumeric'; export interface DispatchArg<T> { source: Observable<T>; subscriber: Subscriber<T>; } /** * We need this JSDoc comment for affecting ESDoc. * @extends {Ignored} * @hide true */ export class SubscribeOnObservable<T> extends Observable<T> { /** @nocollapse */ static create<T>(source: Observable<T>, delay: number = 0, scheduler: SchedulerLike = asap): Observable<T> { return new SubscribeOnObservable(source, delay, scheduler); } /** @nocollapse */ static dispatch<T>(this: SchedulerAction<T>, arg: DispatchArg<T>): Subscription { const { source, subscriber } = arg; return this.add(source.subscribe(subscriber)); } constructor(public source: Observable<T>, private delayTime: number = 0, private scheduler: SchedulerLike = asap) { super(); if (!isNumeric(delayTime) || delayTime < 0) { this.delayTime = 0; } if (!scheduler || typeof scheduler.schedule !== 'function') { this.scheduler = asap; } } /** @deprecated This is an internal implementation detail, do not use. */ _subscribe(subscriber: Subscriber<T>) { const delay = this.delayTime; const source = this.source; const scheduler = this.scheduler; return scheduler.schedule<DispatchArg<any>>(SubscribeOnObservable.dispatch, delay, { source, subscriber }); } }