UNPKG

@reactivex/ix-esnext-esm

Version:

The Interactive Extensions for JavaScript

26 lines (24 loc) 737 B
import { AsyncIterableX } from '../asynciterablex'; export class DefaultIfEmptyAsyncIterable extends AsyncIterableX { constructor(source, defaultValue) { super(); this._source = source; this._defaultValue = defaultValue; } async *[Symbol.asyncIterator]() { let state = 1; for await (const item of this._source) { state = 2; yield item; } if (state === 1) { yield this._defaultValue; } } } export function defaultIfEmpty(defaultValue) { return function defaultIfEmptyOperatorFunction(source) { return new DefaultIfEmptyAsyncIterable(source, defaultValue); }; } //# sourceMappingURL=defaultifempty.mjs.map