34 lines
977 B
JavaScript
34 lines
977 B
JavaScript
|
/** 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
|