# Function: useSubscription()

> 

> **useSubscription**\<`TOutput`, `TError`\>(`opts`): [`TRPCSubscriptionResult`](https://trpc.io/docs/typedoc/tanstack-react-query/type-aliases/TRPCSubscriptionResult.md)\<`TOutput`, `TError`\>

Defined in: [tanstack-react-query/src/internals/subscriptionOptions.ts:234](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/tanstack-react-query/src/internals/subscriptionOptions.ts#L234)

Runs a subscription while the component is mounted.

## Type Parameters

| Type Parameter |
| ------ |
| `TOutput` |
| `TError` |

## Parameters

| Parameter | Type |
| ------ | ------ |
| `opts` | `TRPCSubscriptionOptionsOut`\<`TOutput`, `TError`, `any`\> |

## Returns

[`TRPCSubscriptionResult`](https://trpc.io/docs/typedoc/tanstack-react-query/type-aliases/TRPCSubscriptionResult.md)\<`TOutput`, `TError`\>

## Example

```ts
const trpc = useTRPC();
const sub = useSubscription(
  trpc.chat.onMessage.subscriptionOptions({ roomId }),
);
```

## See

https://trpc.io/docs/client/tanstack-react-query/usage#subscriptionOptions
