SingleAssignmentDisposable class
January 5, 2016 ยท View on GitHub
Represents a disposable resource which only allows a single assignment of its underlying disposable resource. If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an Error.
Usage
The follow example shows the basic usage of a SingleAssignmentDisposable.
const singleDisposable = new SingleAssignmentDisposable();
const disposable = Disposable.create(() => console.log('disposed'));
singleDisposable.setDisposable(disposable);
singleDisposable.dispose();
// => disposed
SingleAssignmentDisposable Constructor
SingleAssignmentDisposable Instance Methods
SingleAssignmentDisposable Instance Properties
SingleAssignmentDisposable Constructor
SingleAssignmentDisposable()
Initializes a new instance of the SingleAssignmentDisposable class.
Example
const singleDisposable = new SingleAssignmentDisposable();
console.log(singleDisposable.isDisposed);
// => false
SingleAssignmentDisposable Instance Methods
SingleAssignmentDisposable.prototype.dispose()
Disposes the underlying disposable.
Example
const singleDisposable = new SingleAssignmentDisposable();
const disposable = Disposable.create(() => console.log('disposed'));
singleDisposable.setDisposable(disposable);
console.log(singleDisposable.isDisposed);
// => false
singleDisposable.dispose();
// => disposed
console.log(singleDisposable.isDisposed);
// => true
SingleAssignmentDisposable.prototype.getDisposable()
Gets the underlying disposable. After disposal, the result of getting this method is undefined.
Returns
Disposable - The underlying disposable.
Example
const singleDisposable = new SingleAssignmentDisposable();
const disposable = Disposable.create(() => console.log('disposed'));
singleDisposable.setDisposable(disposable);
console.log(singleDisposable.getDisposable() === disposable);
SingleAssignmentDisposable.prototype.setDisposable(value)
Sets the underlying disposable.
Arguments
value:Disposable: The new underlying disposable.
Example
const singleDisposable = new SingleAssignmentDisposable();
const d1 = Disposable.create(() => console.log('one'));
singleDisposable.setDisposable(d1);
const d2 = Disposable.create(() => console.log('two'));
try {
singleDisposable.setDisposable(d2);
} catch (e) {
console.log(e.message);
}
// => Disposable has already been assigned
SingleAssignmentDisposable Instance Properties
isDisposed
Gets a value that indicates whether the object is disposed.
Example
const singleDisposable = new SingleAssignmentDisposable();
const disposable = Disposable.create(() => console.log('disposed'));
singleDisposable.setDisposable(disposable);
console.log(singleDisposable.isDisposed);
// => false
singleDisposable.dispose();
// => disposed
console.log(singleDisposable.isDisposed);
// => true