LiveKit docs › Hooks › useSequentialRoomConnectDisconnect

---

# useSequentialRoomConnectDisconnect

When calling room.disconnect() as part of a React useEffect cleanup function, it is possible for a room.connect(...) in the effect body to start running while the room.disconnect() is still running. This hook sequentializes these two operations, so they always happen in order and never overlap.

## Import

```typescript
import { useSequentialRoomConnectDisconnect } from "@livekit/components-react";

```

## Usage

```ts
const { connect, disconnect } = useSequentialRoomConnectDisconnect(room);

// Connecting to a room:
useEffect(() => {
  connect();
  return () => disconnect();
}, [connect, disconnect]);

```

## Properties

- **`room`** _(R)_: 

## Returns

```typescript
UseSequentialRoomConnectDisconnectResults<R>;

```

---

This document was rendered at 2026-06-07T11:34:12.371Z.
For the latest version of this document, see [https://docs.livekit.io/reference/components/react/hook/usesequentialroomconnectdisconnect.md](https://docs.livekit.io/reference/components/react/hook/usesequentialroomconnectdisconnect.md).

To explore all LiveKit documentation, see [llms.txt](https://docs.livekit.io/llms.txt).