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
+
2
2
import { IScheduler } from '../Scheduler' ;
3
- import { Subscriber } from '../Subscriber' ;
4
3
import { Observable } from '../Observable' ;
5
- import { TeardownLogic } from '../Subscription' ;
6
- import { SubscribeOnObservable } from '../observable/SubscribeOnObservable' ;
4
+ import { subscribeOn as higherOrder } from '../operators' ;
7
5
8
6
/**
9
7
* Asynchronously subscribes Observers to this Observable on the specified IScheduler.
@@ -17,16 +15,5 @@ import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';
17
15
* @owner Observable
18
16
*/
19
17
export 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 ) ;
32
19
}
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ export { race } from './race';
26
26
export { reduce } from './reduce' ;
27
27
export { refCount } from './refCount' ;
28
28
export { scan } from './scan' ;
29
+ export { subscribeOn } from './subscribeOn' ;
29
30
export { switchAll } from './switchAll' ;
30
31
export { switchMap } from './switchMap' ;
31
32
export { 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