> For the complete documentation index, see [llms.txt](https://soufatn.gitbook.io/rxjs-book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://soufatn.gitbook.io/rxjs-book/summary/disposables/composite_disposable.md).

# Rx.CompositeDisposable

Represents a group of disposable resources that are disposed together.

## Usage #\#

The follow example shows the basic usage of an Rx.CompositeDisposable.

```javascript
var d1 = Rx.Disposable.create(() => console.log('one'));

var d2 = Rx.Disposable.create(() => console.log('two'));

// Initialize with two disposables
var disposables = new Rx.CompositeDisposable(d1, d2);

disposables.dispose();
// => one
// => two
```

### Location

* rx.js

## `CompositeDisposable Constructor` #\#

* [`constructor`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposablergs)

## `CompositeDisposable Instance Methods` #\#

* [`add`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypeadditem)
* [`clear`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypeclear)
* [`contains`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypecontainsitem)
* [`dispose`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypedispose)
* [`remove`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototyperemoveitem)
* [`toArray`](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypetoarray)

## `CompositeDisposable Instance Properties` #\#

* [`isDisposed`](/rxjs-book/summary/disposables/composite_disposable.md#isdisposed)
* [`length`](/rxjs-book/summary/disposables/composite_disposable.md#length)

## *CompositeDisposable Constructor* #\#

### `Rx.CompositeDisposable(...args)` <a href="#rxcompositedisposableargs" id="rxcompositedisposableargs"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposablergs) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L5-L9)

Initializes a new instance of the `Rx.CompositeDisposable` class from a group of disposables.

#### Arguments

1. `args` *(Array|arguments)*: Disposables that will be disposed together.

#### Example

```javascript
var d1 = Rx.Disposable.create(() => console.log('one'));

var d2 = Rx.Disposable.create(() => console.log('two'));

// Initialize with two disposables
var disposables = new Rx.CompositeDisposable(d1, d2);

disposables.dispose();
// => one
// => two
```

### Location

* rx.js

## *CompositeDisposable Instance Methods* #\#

### `Rx.CompositeDisposable.prototype.add(item)` <a href="#rxcompositedisposableprototypeadditem" id="rxcompositedisposableprototypeadditem"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypeadditem) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L17-L24)

Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.

#### Arguments

1. `item` *(Disposable)*: Disposable to add.

#### Example

```javascript
var disposables = new Rx.CompositeDisposable();

var d1 = Rx.Disposable.create(() => console.log('one'));

disposables.add(d1);

disposables.dispose();
// => one
```

### Location

* rx.js

### `Rx.CompositeDisposable.prototype.clear()` <a href="#rxcompositedisposableprototypeclear" id="rxcompositedisposableprototypeclear"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypeclear) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L65-L72)

Removes and disposes all disposables from the CompositeDisposable, but does not dispose the CompositeDisposable.

#### Example

```javascript
var d1 = Rx.Disposable.create(() => console.log('one'));

var disposables = new Rx.CompositeDisposable(d1);

console.log(disposables.length);
// => 1

disposables.clear();
// => one

console.log(disposables.length);
// => 0
```

### Location

* rx.js

### `Rx.CompositeDisposable.prototype.contains(item)` <a href="#rxcompositedisposableprototypecontainsitem" id="rxcompositedisposableprototypecontainsitem"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypecontainsitem) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L79-L81)

Determines whether the CompositeDisposable contains a specific disposable.

#### Arguments

1. `item` *(Disposable)*: Disposable to search for.

#### Returns

*(Boolean)*: `true` if the disposable was found; otherwise, `false`.

#### Example

```javascript
var disposables = new Rx.CompositeDisposable();

var d1 = Rx.Disposable.create(() => console.log('one'));

disposables.add(d1);

console.log(disposables.contains(d1));
// => true
```

### Location

* rx.js

### `Rx.CompositeDisposable.prototype.dispose()` <a href="#rxcompositedisposableprototypedispose" id="rxcompositedisposableprototypedispose"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypedispose) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L49-L60)

Disposes all disposables in the group and removes them from the group.

#### Example

```javascript
var d1 = Rx.Disposable.create(() => console.log('one'));

var d2 = Rx.Disposable.create(() => console.log('two'));

var disposables = new Rx.CompositeDisposable(d1, d2);

disposables.dispose();
// => one
// => two

console.log(disposables.length);
// => 0
```

### Location

* rx.js

### `Rx.CompositeDisposable.prototype.remove(item)` <a href="#rxcompositedisposableprototyperemoveitem" id="rxcompositedisposableprototyperemoveitem"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototyperemoveitem) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L31-L44)

Removes and disposes the first occurrence of a disposable from the CompositeDisposable.

#### Arguments

1. `item` *(Disposable)*: Disposable to remove.

#### Returns

*(Boolean)*: `true` if the disposable was found and disposed; otherwise, `false`.

#### Example

```javascript
var disposables = new Rx.CompositeDisposable();

var d1 = Rx.Disposable.create(() => console.log('one'));

disposables.add(d1);

console.log(disposables.remove(d1));
// => true
```

### Location

* rx.js

### `Rx.CompositeDisposable.prototype.rxcompositedisposableprototypetoarray()` <a href="#rxcompositedisposableprototypetoarray" id="rxcompositedisposableprototypetoarray"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#rxcompositedisposableprototypetoarray) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L87-L89)

Converts the existing CompositeDisposable to an array of disposables

#### Returns

*(Array)*: An array of disposable objects.

#### Example

```javascript
var d1 = Rx.Disposable.create(() => console.log('one'));

var d2 = Rx.Disposable.create(() => console.log('two'));

var disposables = new Rx.CompositeDisposable(d1, d2);

var array = disposables.toArray();

console.log(array.length);
// => 2
```

### Location

* rx.js

## *CompositeDisposable Instance Properties* #\#

### `isDisposed` <a href="#isdisposed" id="isdisposed"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#isdisposed) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L7)

Gets a value that indicates whether the object is disposed.

#### Example

```javascript
var disposables = new Rx.CompositeDisposable();

var d1 = Rx.Disposable.create(() => console.log('disposed'));

disposables.add(d1);

console.log(disposables.isDisposed);
// => false

disposables.dispose();
// => disposed

console.log(disposables.isDisposed);
// => true
```

### Location

* rx.js

### `length` <a href="#length" id="length"></a>

[#](/rxjs-book/summary/disposables/composite_disposable.md#length) [Ⓢ](https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/disposables/compositedisposable.js#L8)

Gets the number of disposables in the CompositeDisposable.

#### Example

```javascript
var disposables = new Rx.CompositeDisposable();

var d1 = Rx.Disposable.create(() => console.log('disposed'));

disposables.add(d1);

console.log(disposables.length);
// => 1

disposables.dispose();
// => disposed

console.log(disposables.length);
// => 0
```

### Location

* rx.js
