Skip to content
This repository has been archived by the owner on Apr 20, 2018. It is now read-only.

Latest commit

 

History

History
148 lines (91 loc) · 3.52 KB

singleassignmentdisposable.md

File metadata and controls

148 lines (91 loc) · 3.52 KB

SingleAssignmentDisposable class

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

  1. 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