UNPKG

670 BJavaScriptView Raw
1import { AsyncIterableX } from './asynciterablex';
2export class DefaultIfEmptyAsyncIterable extends AsyncIterableX {
3 constructor(source, defaultValue) {
4 super();
5 this._source = source;
6 this._defaultValue = defaultValue;
7 }
8 async *[Symbol.asyncIterator]() {
9 let state = 1;
10 for await (let item of this._source) {
11 state = 2;
12 yield item;
13 }
14 if (state === 1) {
15 yield this._defaultValue;
16 }
17 }
18}
19export function defaultIfEmpty(source, defaultValue) {
20 return new DefaultIfEmptyAsyncIterable(source, defaultValue);
21}
22
23//# sourceMappingURL=defaultifempty.mjs.map