123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { EmptyError } from '../util/EmptyError';
- import { Subscriber } from '../Subscriber';
- export function throwIfEmpty(errorFactory = defaultErrorFactory) {
- return (source) => {
- return source.lift(new ThrowIfEmptyOperator(errorFactory));
- };
- }
- class ThrowIfEmptyOperator {
- constructor(errorFactory) {
- this.errorFactory = errorFactory;
- }
- call(subscriber, source) {
- return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));
- }
- }
- class ThrowIfEmptySubscriber extends Subscriber {
- constructor(destination, errorFactory) {
- super(destination);
- this.errorFactory = errorFactory;
- this.hasValue = false;
- }
- _next(value) {
- this.hasValue = true;
- this.destination.next(value);
- }
- _complete() {
- if (!this.hasValue) {
- let err;
- try {
- err = this.errorFactory();
- }
- catch (e) {
- err = e;
- }
- this.destination.error(err);
- }
- else {
- return this.destination.complete();
- }
- }
- }
- function defaultErrorFactory() {
- return new EmptyError();
- }
- //# sourceMappingURL=throwIfEmpty.js.map
|