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