@lifaon/rx-js-light
Version:
Blazing fast Observables
23 lines (22 loc) • 549 B
JavaScript
export function mergeAllSingleObservable(subscribe) {
return emit => {
let running = true;
let childUnsubscribeFunction;
const unsubscribeChild = () => {
if (childUnsubscribeFunction !== void 0) {
childUnsubscribeFunction();
}
};
const unsubscribe = subscribe(childSubscribe => {
unsubscribeChild();
childUnsubscribeFunction = childSubscribe(emit);
});
return () => {
if (running) {
running = false;
unsubscribe();
unsubscribeChild();
}
};
};
}