# Interface: BehaviorSubject<TValue>

> 

Defined in: [packages/server/src/observable/behaviorSubject.ts:5](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/behaviorSubject.ts#L5)

An observable that holds a current value.

## Extends

- [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue`, `never`\>

## Type Parameters

| Type Parameter |
| ------ |
| `TValue` |

## Properties

### get()

> **get**: () => `TValue`

Defined in: [packages/server/src/observable/behaviorSubject.ts:13](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/behaviorSubject.ts#L13)

The current value.

#### Returns

`TValue`

***

### next()

> **next**: (`value`) => `void`

Defined in: [packages/server/src/observable/behaviorSubject.ts:11](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/behaviorSubject.ts#L11)

Sets the value and sends it to subscribers, if it changed. A subscriber
that throws doesn't stop the others; its error is rethrown asynchronously.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | `TValue` |

#### Returns

`void`

***

### observable

> **observable**: [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue`, `never`\>

Defined in: [packages/server/src/observable/behaviorSubject.ts:6](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/behaviorSubject.ts#L6)

## Methods

### pipe()

#### Call Signature

> **pipe**(): [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue`, `never`\>

Defined in: [packages/server/src/observable/types.ts:22](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L22)

Returns an observable with the operators applied, in order.

##### Returns

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue`, `never`\>

##### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`pipe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#pipe)

#### Call Signature

> **pipe**\<`TValue1`, `TError1`\>(`op1`): [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue1`, `TError1`\>

Defined in: [packages/server/src/observable/types.ts:23](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L23)

##### Type Parameters

| Type Parameter |
| ------ |
| `TValue1` |
| `TError1` |

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `op1` | `OperatorFunction`\<`TValue`, `never`, `TValue1`, `TError1`\> |

##### Returns

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue1`, `TError1`\>

##### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`pipe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#pipe)

#### Call Signature

> **pipe**\<`TValue1`, `TError1`, `TValue2`, `TError2`\>(`op1`, `op2`): [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

Defined in: [packages/server/src/observable/types.ts:26](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L26)

##### Type Parameters

| Type Parameter |
| ------ |
| `TValue1` |
| `TError1` |
| `TValue2` |
| `TError2` |

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `op1` | `OperatorFunction`\<`TValue`, `never`, `TValue1`, `TError1`\> |
| `op2` | `OperatorFunction`\<`TValue1`, `TError1`, `TValue2`, `TError2`\> |

##### Returns

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

##### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`pipe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#pipe)

#### Call Signature

> **pipe**\<`TValue1`, `TError1`, `TValue2`, `TError2`, `TValue3`, `TError3`\>(`op1`, `op2`, `op3`): [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

Defined in: [packages/server/src/observable/types.ts:30](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L30)

##### Type Parameters

| Type Parameter |
| ------ |
| `TValue1` |
| `TError1` |
| `TValue2` |
| `TError2` |
| `TValue3` |
| `TError3` |

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `op1` | `OperatorFunction`\<`TValue`, `never`, `TValue1`, `TError1`\> |
| `op2` | `OperatorFunction`\<`TValue1`, `TError1`, `TValue2`, `TError2`\> |
| `op3` | `OperatorFunction`\<`TValue2`, `TError2`, `TValue3`, `TError3`\> |

##### Returns

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

##### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`pipe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#pipe)

#### Call Signature

> **pipe**\<`TValue1`, `TError1`, `TValue2`, `TError2`, `TValue3`, `TError3`, `TValue4`, `TError4`\>(`op1`, `op2`, `op3`, `op4`): [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

Defined in: [packages/server/src/observable/types.ts:35](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L35)

##### Type Parameters

| Type Parameter |
| ------ |
| `TValue1` |
| `TError1` |
| `TValue2` |
| `TError2` |
| `TValue3` |
| `TError3` |
| `TValue4` |
| `TError4` |

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `op1` | `OperatorFunction`\<`TValue`, `never`, `TValue1`, `TError1`\> |
| `op2` | `OperatorFunction`\<`TValue1`, `TError1`, `TValue2`, `TError2`\> |
| `op3` | `OperatorFunction`\<`TValue2`, `TError2`, `TValue3`, `TError3`\> |
| `op4` | `OperatorFunction`\<`TValue3`, `TError3`, `TValue4`, `TError4`\> |

##### Returns

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

##### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`pipe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#pipe)

#### Call Signature

> **pipe**\<`TValue1`, `TError1`, `TValue2`, `TError2`, `TValue3`, `TError3`, `TValue4`, `TError4`, `TValue5`, `TError5`\>(`op1`, `op2`, `op3`, `op4`, `op5`): [`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

Defined in: [packages/server/src/observable/types.ts:41](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L41)

##### Type Parameters

| Type Parameter |
| ------ |
| `TValue1` |
| `TError1` |
| `TValue2` |
| `TError2` |
| `TValue3` |
| `TError3` |
| `TValue4` |
| `TError4` |
| `TValue5` |
| `TError5` |

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `op1` | `OperatorFunction`\<`TValue`, `never`, `TValue1`, `TError1`\> |
| `op2` | `OperatorFunction`\<`TValue1`, `TError1`, `TValue2`, `TError2`\> |
| `op3` | `OperatorFunction`\<`TValue2`, `TError2`, `TValue3`, `TError3`\> |
| `op4` | `OperatorFunction`\<`TValue3`, `TError3`, `TValue4`, `TError4`\> |
| `op5` | `OperatorFunction`\<`TValue4`, `TError4`, `TValue5`, `TError5`\> |

##### Returns

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md)\<`TValue2`, `TError2`\>

##### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`pipe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#pipe)

***

### subscribe()

> **subscribe**(`observer`): [`Unsubscribable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Unsubscribable.md)

Defined in: [packages/server/src/observable/types.ts:10](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/observable/types.ts#L10)

Starts the observable, sending what it emits to `observer`.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `observer` | `Partial`\<[`Observer`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observer.md)\<`TValue`, `never`\>\> |

#### Returns

[`Unsubscribable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Unsubscribable.md)

#### Inherited from

[`Observable`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md).[`subscribe`](https://trpc.io/docs/typedoc/server/observable/interfaces/Observable.md#subscribe)
