@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
26 lines (24 loc) • 652 B
JavaScript
import { AsyncIterableX } from '../asynciterablex';
export class FinallyAsyncIterable extends AsyncIterableX {
constructor(source, action) {
super();
this._source = source;
this._action = action;
}
async *[Symbol.asyncIterator]() {
try {
for await (const item of this._source) {
yield item;
}
}
finally {
await this._action();
}
}
}
export function finalize(action) {
return function finalizeOperatorFunction(source) {
return new FinallyAsyncIterable(source, action);
};
}
//# sourceMappingURL=finalize.mjs.map