diff --git a/src/CoreOperators.ts b/src/CoreOperators.ts index 7de90bcf65..a6a7bc3279 100644 --- a/src/CoreOperators.ts +++ b/src/CoreOperators.ts @@ -18,7 +18,7 @@ export interface CoreOperators { concatAll?: () => Observable; concatMap?: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; concatMapTo?: (observable: Observable, projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; - count?: (predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any) => Observable; + count?: (predicate?: (value: T, index: number, source: Observable) => boolean) => Observable; dematerialize?: () => Observable; debounce?: (durationSelector: (value: T) => Observable | Promise) => Observable; debounceTime?: (dueTime: number, scheduler?: Scheduler) => Observable; diff --git a/src/Observable.ts b/src/Observable.ts index d47e9b414f..d640f52a58 100644 --- a/src/Observable.ts +++ b/src/Observable.ts @@ -180,7 +180,7 @@ export class Observable implements CoreOperators { concatAll: () => Observable; concatMap: (project: ((x: T, ix: number) => Observable), projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; concatMapTo: (observable: Observable, projectResult?: (x: T, y: any, ix: number, iy: number) => R) => Observable; - count: (predicate?: (value: T, index: number, source: Observable) => boolean, thisArg?: any) => Observable; + count: (predicate?: (value: T, index: number, source: Observable) => boolean) => Observable; dematerialize: () => Observable; debounce: (durationSelector: (value: T) => Observable | Promise) => Observable; debounceTime: (dueTime: number, scheduler?: Scheduler) => Observable; diff --git a/src/operator/count.ts b/src/operator/count.ts index ba3e46ddb2..5a80f11661 100644 --- a/src/operator/count.ts +++ b/src/operator/count.ts @@ -5,7 +5,6 @@ import {Subscriber} from '../Subscriber'; import {tryCatch} from '../util/tryCatch'; import {errorObject} from '../util/errorObject'; -import {bindCallback} from '../util/bindCallback'; /** * Returns an observable of a single number that represents the number of items that either: @@ -23,37 +22,28 @@ import {bindCallback} from '../util/bindCallback'; */ export function count(predicate?: (value: T, index: number, - source: Observable) => boolean, - thisArg?: any): Observable { - return this.lift(new CountOperator(predicate, thisArg, this)); + source: Observable) => boolean): Observable { + return this.lift(new CountOperator(predicate, this)); } class CountOperator implements Operator { constructor(private predicate?: (value: T, index: number, source: Observable) => boolean, - private thisArg?: any, private source?: Observable) { } call(subscriber: Subscriber): Subscriber { - return new CountSubscriber( - subscriber, this.predicate, this.thisArg, this.source - ); + return new CountSubscriber(subscriber, this.predicate, this.source); } } class CountSubscriber extends Subscriber { - private predicate: Function; private count: number = 0; private index: number = 0; constructor(destination: Observer, - predicate?: (value: T, index: number, source: Observable) => boolean, - private thisArg?: any, + private predicate?: (value: T, index: number, source: Observable) => boolean, private source?: Observable) { super(destination); - if (typeof predicate === 'function') { - this.predicate = bindCallback(predicate, thisArg, 3); - } } _next(value: T): void {