| 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 |