doc/api/disposables/refcountdisposable.md
Rx.RefCountDisposable classRepresents a disposable resource that only disposes its underlying disposable resource when all getDisposable dependent disposable objects have been disposed.
The follow example shows the basic usage of an Rx.RefCountDisposable.
var disposable = Rx.Disposable.create(function () {
console.log('disposed');
});
var refCountDisposable = new Rx.RefCountDisposable(disposable);
var disposable1 = refCountDisposable.getDisposable();
var disposable2 = refCountDisposable.getDisposable();
disposable1.dispose();
console.log(disposable.isDisposed);
// => false
disposable2.dispose();
console.log(disposable.isDisposed);
// => false
refCountDisposable.dispose();
// => disposed
console.log(refCountDisposable.isDisposed);
// => true
RefCountDisposable ConstructorRefCountDisposable Instance MethodsRefCountDisposable Instance PropertiesRx.RefCountDisposable(disposable)<a href="#rxrefcountdisposable">#</a> Ⓢ
Initializes a new instance of the Rx.RefCountDisposable class with the specified disposable
disposable (Disposable): Underlying disposable.var disposable = Rx.Disposable.create(function () {
console.log('disposed');
});
var refCountDisposable = new Rx.RefCountDisposable(disposable);
console.log(refCountDisposable.isDisposed);
// => false
Rx.RefCountDisposable.prototype.dispose()<a href="#rxrefcountdisposableprototypedispose">#</a> Ⓢ
Disposes the underlying disposable only when all dependent disposables have been disposed.
var disposable = Rx.Disposable.create(function () {
console.log('disposed');
});
var refCountDisposable = new Rx.RefCountDisposable(disposable);
var disposable1 = refCountDisposable.getDisposable();
var disposable2 = refCountDisposable.getDisposable();
disposable1.dispose();
console.log(disposable.isDisposed);
// => false
disposable2.dispose();
console.log(disposable.isDisposed);
// => false
refCountDisposable.dispose();
// => disposed
console.log(refCountDisposable.isDisposed);
// => true
Rx.RefCountDisposable.prototype.getDisposable()<a href="#rxrefcountdisposableprototypegetdisposable">#</a> Ⓢ
Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable.
(Disposable): A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime.
var disposable = Rx.Disposable.create(function () {
console.log('disposed');
});
var refCountDisposable = new Rx.RefCountDisposable(disposable);
var d = refCountDisposable.getDisposable();
console.log(d === disposable);
// => false
// Clean up disposables
disposable.dispose();
d.dispose();
// Now try to dispose the main
refCountDisposable.dispose();
console.log(refCountDisposable.isDisposed);
// => true
isDisposed<a href="#isdisposed">#</a> Ⓢ
Gets a value that indicates whether the object is disposed.
var disposable = Rx.Disposable.create(function () {
console.log('disposed');
});
var refCountDisposable = new Rx.RefCountDisposable(disposable);
disposable.dispose();
console.log(refCountDisposable.isDisposed);
// => false
refCountDisposable.dispose();
// => disposed
console.log(refCountDisposable.isDisposed);
// => true