Skip to content

Commit 6835dcd

Browse files
committed
feat(inspectTime): add inspectTime operator
RxJS 5's `sampleTime` operator deviated from expected Rx behavior, but has value, so we're moving it to be named `inspectTime`. BREAKING CHANGE: `sampleTime` is now `inspectTime`
1 parent f9944ae commit 6835dcd

File tree

8 files changed

+25
-25
lines changed

8 files changed

+25
-25
lines changed

spec/operators/sampleTime-spec.js renamed to spec/operators/inspectTime-spec.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@
22
var Rx = require('../../dist/cjs/Rx');
33
var Observable = Rx.Observable;
44

5-
describe('Observable.prototype.sampleTime', function () {
6-
it('should get samples on a delay', function () {
5+
describe('Observable.prototype.inspectTime', function () {
6+
it('should get inspections on a delay', function () {
77
var e1 = hot('----a-^--b----c----d----e----f----|');
88
var e1subs = '^ !';
99
var expected = '-----------c----------e-----|';
1010
// timer -----------!----------!---------
1111

12-
expectObservable(e1.sampleTime(110, rxTestScheduler)).toBe(expected);
12+
expectObservable(e1.inspectTime(110, rxTestScheduler)).toBe(expected);
1313
expectSubscriptions(e1.subscriptions).toBe(e1subs);
1414
});
1515

16-
it('should sample nothing if source has not nexted by time of sample', function () {
16+
it('should inspect nothing if source has not nexted by time of inspect', function () {
1717
var e1 = hot('----a-^-------------b-------------|');
1818
var e1subs = '^ !';
1919
var expected = '----------------------b-----|';
2020
// timer -----------!----------!---------
2121

22-
expectObservable(e1.sampleTime(110, rxTestScheduler)).toBe(expected);
22+
expectObservable(e1.inspectTime(110, rxTestScheduler)).toBe(expected);
2323
expectSubscriptions(e1.subscriptions).toBe(e1subs);
2424
});
2525

@@ -29,7 +29,7 @@ describe('Observable.prototype.sampleTime', function () {
2929
var expected = '-----------c------#';
3030
// timer -----------!----------!---------
3131

32-
expectObservable(e1.sampleTime(110, rxTestScheduler)).toBe(expected);
32+
expectObservable(e1.inspectTime(110, rxTestScheduler)).toBe(expected);
3333
expectSubscriptions(e1.subscriptions).toBe(e1subs);
3434
});
3535

@@ -40,7 +40,7 @@ describe('Observable.prototype.sampleTime', function () {
4040
var expected = '-----------c----- ';
4141
// timer -----------!----------!---------
4242

43-
expectObservable(e1.sampleTime(110, rxTestScheduler), unsub).toBe(expected);
43+
expectObservable(e1.inspectTime(110, rxTestScheduler), unsub).toBe(expected);
4444
expectSubscriptions(e1.subscriptions).toBe(e1subs);
4545
});
4646

@@ -53,7 +53,7 @@ describe('Observable.prototype.sampleTime', function () {
5353

5454
var result = e1
5555
.mergeMap(function (x) { return Observable.of(x); })
56-
.sampleTime(110, rxTestScheduler)
56+
.inspectTime(110, rxTestScheduler)
5757
.mergeMap(function (x) { return Observable.of(x); });
5858

5959
expectObservable(result, unsub).toBe(expected);
@@ -65,7 +65,7 @@ describe('Observable.prototype.sampleTime', function () {
6565
var e1subs = '(^!)';
6666
var expected = '|';
6767

68-
expectObservable(e1.sampleTime(60, rxTestScheduler)).toBe(expected);
68+
expectObservable(e1.inspectTime(60, rxTestScheduler)).toBe(expected);
6969
expectSubscriptions(e1.subscriptions).toBe(e1subs);
7070
});
7171

@@ -74,7 +74,7 @@ describe('Observable.prototype.sampleTime', function () {
7474
var e1subs = '(^!)';
7575
var expected = '#';
7676

77-
expectObservable(e1.sampleTime(60, rxTestScheduler)).toBe(expected);
77+
expectObservable(e1.inspectTime(60, rxTestScheduler)).toBe(expected);
7878
expectSubscriptions(e1.subscriptions).toBe(e1subs);
7979
});
8080

@@ -83,7 +83,7 @@ describe('Observable.prototype.sampleTime', function () {
8383
var e1subs = '^';
8484
var expected = '-';
8585

86-
expectObservable(e1.sampleTime(60, rxTestScheduler)).toBe(expected);
86+
expectObservable(e1.inspectTime(60, rxTestScheduler)).toBe(expected);
8787
expectSubscriptions(e1.subscriptions).toBe(e1subs);
8888
});
8989
});

src/CoreOperators.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export interface CoreOperators<T> {
4040
durationSelector?: (group: GroupedObservable<R>) => Observable<any>) => Observable<GroupedObservable<R>>;
4141
ignoreElements?: () => Observable<T>;
4242
inspect?: (notifier: Observable<any>) => Observable<T>;
43+
inspectTime?: (delay: number, scheduler?: Scheduler) => Observable<T>;
4344
last?: <R>(predicate?: (value: T, index: number) => boolean,
4445
resultSelector?: (value: T, index: number) => R,
4546
defaultValue?: any) => Observable<T> | Observable<R>;
@@ -63,7 +64,6 @@ export interface CoreOperators<T> {
6364
repeat?: (count?: number) => Observable<T>;
6465
retry?: (count?: number) => Observable<T>;
6566
retryWhen?: (notifier: (errors: Observable<any>) => Observable<any>) => Observable<T>;
66-
sampleTime?: (delay: number, scheduler?: Scheduler) => Observable<T>;
6767
scan?: <R>(project: (acc: R, x: T) => R, acc?: R) => Observable<R>;
6868
share?: () => Observable<T>;
6969
single?: (predicate?: (value: T, index: number) => boolean) => Observable<T>;

src/Observable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ export class Observable<T> implements CoreOperators<T> {
221221
durationSelector?: (group: GroupedObservable<R>) => Observable<any>) => Observable<GroupedObservable<R>>;
222222
ignoreElements: () => Observable<T>;
223223
inspect: (notifier: Observable<any>) => Observable<T>;
224+
inspectTime: (delay: number, scheduler?: Scheduler) => Observable<T>;
224225
last: <R>(predicate?: (value: T, index: number) => boolean,
225226
resultSelector?: (value: T, index: number) => R,
226227
thisArg?: any, defaultValue?: any) => Observable<T> | Observable<R>;
@@ -245,7 +246,6 @@ export class Observable<T> implements CoreOperators<T> {
245246
repeat: (count?: number) => Observable<T>;
246247
retry: (count?: number) => Observable<T>;
247248
retryWhen: (notifier: (errors: Observable<any>) => Observable<any>) => Observable<T>;
248-
sampleTime: (delay: number, scheduler?: Scheduler) => Observable<T>;
249249
scan: <R>(accumulator: (acc: R, x: T) => R, seed?: T | R) => Observable<R>;
250250
share: () => Observable<T>;
251251
single: (predicate?: (value: T, index: number) => boolean) => Observable<T>;

src/Rx.KitchenSink.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ import './add/operator/first';
7575
import './add/operator/groupBy';
7676
import './add/operator/ignoreElements';
7777
import './add/operator/inspect';
78+
import './add/operator/inspectTime';
7879
import './add/operator/extended/isEmpty';
7980
import './add/operator/every';
8081
import './add/operator/last';
@@ -99,7 +100,6 @@ import './add/operator/reduce';
99100
import './add/operator/repeat';
100101
import './add/operator/retry';
101102
import './add/operator/retryWhen';
102-
import './add/operator/sampleTime';
103103
import './add/operator/scan';
104104
import './add/operator/share';
105105
import './add/operator/single';

src/Rx.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import './add/operator/first';
5555
import './add/operator/groupBy';
5656
import './add/operator/ignoreElements';
5757
import './add/operator/inspect';
58+
import './add/operator/inspectTime';
5859
import './add/operator/every';
5960
import './add/operator/last';
6061
import './add/operator/map';
@@ -75,7 +76,6 @@ import './add/operator/reduce';
7576
import './add/operator/repeat';
7677
import './add/operator/retry';
7778
import './add/operator/retryWhen';
78-
import './add/operator/sampleTime';
7979
import './add/operator/scan';
8080
import './add/operator/share';
8181
import './add/operator/single';

src/add/operator/inspectTime.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {Observable} from '../../Observable';
2+
import {inspectTime} from '../../operator/inspectTime';
3+
Observable.prototype.inspectTime = inspectTime;
4+
5+
export var _void: void;

src/add/operator/sampleTime.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/operator/sampleTime.ts renamed to src/operator/inspectTime.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ import {Subscriber} from '../Subscriber';
44
import {Scheduler} from '../Scheduler';
55
import {asap} from '../scheduler/asap';
66

7-
export function sampleTime<T>(delay: number, scheduler: Scheduler = asap): Observable<T> {
8-
return this.lift(new SampleTimeOperator(delay, scheduler));
7+
export function inspectTime<T>(delay: number, scheduler: Scheduler = asap): Observable<T> {
8+
return this.lift(new InspectTimeOperator(delay, scheduler));
99
}
1010

11-
class SampleTimeOperator<T, R> implements Operator<T, R> {
11+
class InspectTimeOperator<T, R> implements Operator<T, R> {
1212
constructor(private delay: number, private scheduler: Scheduler) {
1313
}
1414

1515
call(subscriber: Subscriber<R>) {
16-
return new SampleTimeSubscriber(subscriber, this.delay, this.scheduler);
16+
return new InspectTimeSubscriber(subscriber, this.delay, this.scheduler);
1717
}
1818
}
1919

20-
class SampleTimeSubscriber<T> extends Subscriber<T> {
20+
class InspectTimeSubscriber<T> extends Subscriber<T> {
2121
lastValue: T;
2222
hasValue: boolean = false;
2323

0 commit comments

Comments
 (0)