UNPKG

1.03 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var Observable_1 = require("../Observable");
4var from_1 = require("./from");
5var empty_1 = require("./empty");
6function using(resourceFactory, observableFactory) {
7 return new Observable_1.Observable(function (subscriber) {
8 var resource;
9 try {
10 resource = resourceFactory();
11 }
12 catch (err) {
13 subscriber.error(err);
14 return undefined;
15 }
16 var result;
17 try {
18 result = observableFactory(resource);
19 }
20 catch (err) {
21 subscriber.error(err);
22 return undefined;
23 }
24 var source = result ? from_1.from(result) : empty_1.EMPTY;
25 var subscription = source.subscribe(subscriber);
26 return function () {
27 subscription.unsubscribe();
28 if (resource) {
29 resource.unsubscribe();
30 }
31 };
32 });
33}
34exports.using = using;
35//# sourceMappingURL=using.js.map
\No newline at end of file