Every new change
This commit is contained in:
48
node_modules/rxjs/_esm2015/internal/operators/count.js
generated
vendored
Normal file
48
node_modules/rxjs/_esm2015/internal/operators/count.js
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
import { Subscriber } from '../Subscriber';
|
||||
export function count(predicate) {
|
||||
return (source) => source.lift(new CountOperator(predicate, source));
|
||||
}
|
||||
class CountOperator {
|
||||
constructor(predicate, source) {
|
||||
this.predicate = predicate;
|
||||
this.source = source;
|
||||
}
|
||||
call(subscriber, source) {
|
||||
return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
|
||||
}
|
||||
}
|
||||
class CountSubscriber extends Subscriber {
|
||||
constructor(destination, predicate, source) {
|
||||
super(destination);
|
||||
this.predicate = predicate;
|
||||
this.source = source;
|
||||
this.count = 0;
|
||||
this.index = 0;
|
||||
}
|
||||
_next(value) {
|
||||
if (this.predicate) {
|
||||
this._tryPredicate(value);
|
||||
}
|
||||
else {
|
||||
this.count++;
|
||||
}
|
||||
}
|
||||
_tryPredicate(value) {
|
||||
let result;
|
||||
try {
|
||||
result = this.predicate(value, this.index++, this.source);
|
||||
}
|
||||
catch (err) {
|
||||
this.destination.error(err);
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
this.count++;
|
||||
}
|
||||
}
|
||||
_complete() {
|
||||
this.destination.next(this.count);
|
||||
this.destination.complete();
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=count.js.map
|
Reference in New Issue
Block a user