Rx.Observable.using(resourceFactory, observableFactory)
Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime.
Arguments
resourceFactory
(Function
): Factory function to obtain a resource object.observableFactory
(Function
): Factory function to obtain an observable sequence that depends on the obtained resource.
Returns
(Function
): An observable sequence whose lifetime controls the lifetime of the dependent resource object.
Example
/* Using an AsyncSubject as a resource which supports the .dispose method */
function DisposableResource(value) {
this.value = value;
this.disposed = false;
}
DisposableResource.prototype.getValue = function () {
if (this.disposed) {
throw new Error('Object is disposed');
}
return this.value;
};
DisposableResource.prototype.dispose = function () {
if (!this.disposed) {
this.disposed = true;
this.value = null;
}
console.log('Disposed');
};
var source = Rx.Observable.using(
function () { return new DisposableResource(42); },
function (resource) {
var subject = new Rx.AsyncSubject();
subject.onNext(resource.getValue());
subject.onCompleted();
return subject;
}
);
var subscription = source.subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
// => Next: 42
// => Completed
subscription.dispose();
// => Disposed
Location
File:
Dist:
Prerequisites:
- None
NPM Packages:
NuGet Packages:
Unit Tests: