Subtheme of barrio
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
2.3 KiB

"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var Observable_1 = require('../Observable');
var subscribeToResult_1 = require('../util/subscribeToResult');
var OuterSubscriber_1 = require('../OuterSubscriber');
/**
* We need this JSDoc comment for affecting ESDoc.
* @extends {Ignored}
* @hide true
*/
var UsingObservable = (function (_super) {
__extends(UsingObservable, _super);
function UsingObservable(resourceFactory, observableFactory) {
_super.call(this);
this.resourceFactory = resourceFactory;
this.observableFactory = observableFactory;
}
UsingObservable.create = function (resourceFactory, observableFactory) {
return new UsingObservable(resourceFactory, observableFactory);
};
/** @deprecated internal use only */ UsingObservable.prototype._subscribe = function (subscriber) {
var _a = this, resourceFactory = _a.resourceFactory, observableFactory = _a.observableFactory;
var resource;
try {
resource = resourceFactory();
return new UsingSubscriber(subscriber, resource, observableFactory);
}
catch (err) {
subscriber.error(err);
}
};
return UsingObservable;
}(Observable_1.Observable));
exports.UsingObservable = UsingObservable;
var UsingSubscriber = (function (_super) {
__extends(UsingSubscriber, _super);
function UsingSubscriber(destination, resource, observableFactory) {
_super.call(this, destination);
this.resource = resource;
this.observableFactory = observableFactory;
destination.add(resource);
this.tryUse();
}
UsingSubscriber.prototype.tryUse = function () {
try {
var source = this.observableFactory.call(this, this.resource);
if (source) {
this.add(subscribeToResult_1.subscribeToResult(this, source));
}
}
catch (err) {
this._error(err);
}
};
return UsingSubscriber;
}(OuterSubscriber_1.OuterSubscriber));
//# sourceMappingURL=UsingObservable.js.map