| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| var Observable_1 = require("../Observable"); |
| var from_1 = require("./from"); |
| var empty_1 = require("./empty"); |
| function using(resourceFactory, observableFactory) { |
| return new Observable_1.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_1.from(result) : empty_1.EMPTY; |
| var subscription = source.subscribe(subscriber); |
| return function () { |
| subscription.unsubscribe(); |
| if (resource) { |
| resource.unsubscribe(); |
| } |
| }; |
| }); |
| } |
| exports.using = using; |
| //# sourceMappingURL=using.js.map |