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