@lifaon/rx-js-light
Version:
Blazing fast Observables
20 lines (19 loc) • 458 B
JavaScript
import {asyncUnsubscribe} from "../../../../../../misc/helpers/async-unsubscribe.mjs";
export function firstObservable(subscribe) {
return emit => {
let running = true;
const unsubscribe = subscribe(value => {
if (running) {
running = false;
asyncUnsubscribe(() => unsubscribe);
emit(value);
}
});
return () => {
if (running) {
running = false;
unsubscribe();
}
};
};
}