12345678910111213141516171819202122232425262728 |
- import { identity } from '../util/identity';
- import { operate } from '../util/lift';
- import { createOperatorSubscriber } from './OperatorSubscriber';
- export function skipLast(skipCount) {
- return skipCount <= 0
- ?
- identity
- : operate(function (source, subscriber) {
- var ring = new Array(skipCount);
- var seen = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var valueIndex = seen++;
- if (valueIndex < skipCount) {
- ring[valueIndex] = value;
- }
- else {
- var index = valueIndex % skipCount;
- var oldValue = ring[index];
- ring[index] = value;
- subscriber.next(oldValue);
- }
- }));
- return function () {
- ring = null;
- };
- });
- }
- //# sourceMappingURL=skipLast.js.map
|