File tree Expand file tree Collapse file tree 3 files changed +39
-16
lines changed Expand file tree Collapse file tree 3 files changed +39
-16
lines changed Original file line number Diff line number Diff line change 1- import { Operator } from '../Operator' ;
1+
22import { IScheduler } from '../Scheduler' ;
3- import { Subscriber } from '../Subscriber' ;
43import { Observable } from '../Observable' ;
5- import { TeardownLogic } from '../Subscription' ;
6- import { SubscribeOnObservable } from '../observable/SubscribeOnObservable' ;
4+ import { subscribeOn as higherOrder } from '../operators' ;
75
86/**
97 * Asynchronously subscribes Observers to this Observable on the specified IScheduler.
@@ -17,16 +15,5 @@ import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';
1715 * @owner Observable
1816 */
1917export function subscribeOn < T > ( this : Observable < T > , scheduler : IScheduler , delay : number = 0 ) : Observable < T > {
20- return this . lift ( new SubscribeOnOperator < T > ( scheduler , delay ) ) ;
21- }
22-
23- class SubscribeOnOperator < T > implements Operator < T , T > {
24- constructor ( private scheduler : IScheduler ,
25- private delay : number ) {
26- }
27- call ( subscriber : Subscriber < T > , source : any ) : TeardownLogic {
28- return new SubscribeOnObservable (
29- source , this . delay , this . scheduler
30- ) . subscribe ( subscriber ) ;
31- }
18+ return higherOrder ( scheduler , delay ) ( this ) ;
3219}
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ export { race } from './race';
2626export { reduce } from './reduce' ;
2727export { refCount } from './refCount' ;
2828export { scan } from './scan' ;
29+ export { subscribeOn } from './subscribeOn' ;
2930export { switchAll } from './switchAll' ;
3031export { switchMap } from './switchMap' ;
3132export { takeLast } from './takeLast' ;
Original file line number Diff line number Diff line change 1+ import { Operator } from '../Operator' ;
2+ import { IScheduler } from '../Scheduler' ;
3+ import { Subscriber } from '../Subscriber' ;
4+ import { Observable } from '../Observable' ;
5+ import { TeardownLogic } from '../Subscription' ;
6+ import { SubscribeOnObservable } from '../observable/SubscribeOnObservable' ;
7+ import { MonoTypeOperatorFunction } from '../interfaces' ;
8+
9+ /**
10+ * Asynchronously subscribes Observers to this Observable on the specified IScheduler.
11+ *
12+ * <img src="./img/subscribeOn.png" width="100%">
13+ *
14+ * @param {Scheduler } scheduler - The IScheduler to perform subscription actions on.
15+ * @return {Observable<T> } The source Observable modified so that its subscriptions happen on the specified IScheduler.
16+ .
17+ * @method subscribeOn
18+ * @owner Observable
19+ */
20+ export function subscribeOn < T > ( scheduler : IScheduler , delay : number = 0 ) : MonoTypeOperatorFunction < T > {
21+ return function subscribeOnOperatorFunction ( source : Observable < T > ) : Observable < T > {
22+ return source . lift ( new SubscribeOnOperator < T > ( scheduler , delay ) ) ;
23+ } ;
24+ }
25+
26+ class SubscribeOnOperator < T > implements Operator < T , T > {
27+ constructor ( private scheduler : IScheduler ,
28+ private delay : number ) {
29+ }
30+ call ( subscriber : Subscriber < T > , source : any ) : TeardownLogic {
31+ return new SubscribeOnObservable (
32+ source , this . delay , this . scheduler
33+ ) . subscribe ( subscriber ) ;
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments