UNPKG

763 BJavaScriptView Raw
1import { AsyncIterableX } from './asynciterablex';
2class GenerateAsyncIterable extends AsyncIterableX {
3 constructor(initialState, condition, iterate, resultSelector) {
4 super();
5 this._initialState = initialState;
6 this._condition = condition;
7 this._iterate = iterate;
8 this._resultSelector = resultSelector;
9 }
10 async *[Symbol.asyncIterator]() {
11 for (let i = this._initialState; await this._condition(i); i = await this._iterate(i)) {
12 yield await this._resultSelector(i);
13 }
14 }
15}
16export function generate(initialState, condition, iterate, resultSelector) {
17 return new GenerateAsyncIterable(initialState, condition, iterate, resultSelector);
18}
19
20//# sourceMappingURL=generate.mjs.map