UNPKG

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