frontend/.pnpm-store/v3/files/e6/30db7ea5c7e6c0d8e46d6afe4964b9ab621410be19a7e144b7c6d8031c6a2ce96b722ca8437422cb3ec2acaddd18045291a3cdc10699a8f120a457b73ce641

34 lines
977 B
Plaintext

/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */
import { Observable } from '../Observable';
import { from } from './from';
import { EMPTY } from './empty';
export function using(resourceFactory, observableFactory) {
return new Observable(function (subscriber) {
var resource;
try {
resource = resourceFactory();
}
catch (err) {
subscriber.error(err);
return undefined;
}
var result;
try {
result = observableFactory(resource);
}
catch (err) {
subscriber.error(err);
return undefined;
}
var source = result ? from(result) : EMPTY;
var subscription = source.subscribe(subscriber);
return function () {
subscription.unsubscribe();
if (resource) {
resource.unsubscribe();
}
};
});
}
//# sourceMappingURL=using.js.map