41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { Subscriber } from '../Subscriber';
|
|
/**
|
|
* Returns an Observable that skips the first `count` items emitted by the source Observable.
|
|
*
|
|
* <img src="./img/skip.png" width="100%">
|
|
*
|
|
* @param {Number} count - The number of times, items emitted by source Observable should be skipped.
|
|
* @return {Observable} An Observable that skips values emitted by the source Observable.
|
|
*
|
|
* @method skip
|
|
* @owner Observable
|
|
*/
|
|
export function skip(count) {
|
|
return (source) => source.lift(new SkipOperator(count));
|
|
}
|
|
class SkipOperator {
|
|
constructor(total) {
|
|
this.total = total;
|
|
}
|
|
call(subscriber, source) {
|
|
return source.subscribe(new SkipSubscriber(subscriber, this.total));
|
|
}
|
|
}
|
|
/**
|
|
* We need this JSDoc comment for affecting ESDoc.
|
|
* @ignore
|
|
* @extends {Ignored}
|
|
*/
|
|
class SkipSubscriber extends Subscriber {
|
|
constructor(destination, total) {
|
|
super(destination);
|
|
this.total = total;
|
|
this.count = 0;
|
|
}
|
|
_next(x) {
|
|
if (++this.count > this.total) {
|
|
this.destination.next(x);
|
|
}
|
|
}
|
|
}
|
|
//# sourceMappingURL=skip.js.map
|