@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
41 lines (39 loc) • 1.06 kB
JavaScript
import { IterableX } from '../iterablex';
export class TapIterable extends IterableX {
constructor(source, observer) {
super();
this._source = source;
this._observer = observer;
}
*[Symbol.iterator]() {
const it = this._source[Symbol.iterator]();
while (1) {
let next;
try {
next = it.next();
if (next.done) {
break;
}
}
catch (e) {
if (this._observer.error) {
this._observer.error(e);
}
throw e;
}
if (this._observer.next) {
this._observer.next(next.value);
}
yield next.value;
}
if (this._observer.complete) {
this._observer.complete();
}
}
}
export function tap(observer) {
return function tapOperatorFunction(source) {
return new TapIterable(source, observer);
};
}
//# sourceMappingURL=tap.mjs.map