> 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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://soufatn.gitbook.io/rxjs-book/summary/disposables/composite_disposable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
