[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Task](https://evolu.dev/docs/api-reference/common/Task) › Gate

Defined in: [packages/common/src/Task.ts:2296](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2296)

A blocking [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) — like a gate.

- **Closed**: Tasks wait.
- **Open**: Tasks proceed.

Use it to pause execution based on a condition. Unlike a [Deferred](https://evolu.dev/docs/api-reference/common/Task/interfaces/Deferred)
(which triggers once), a [Gate](https://evolu.dev/docs/api-reference/common/Task/interfaces/Gate) can be opened and closed repeatedly.

Disposing aborts all waiting Tasks with [deferredDisposedError](https://evolu.dev/docs/api-reference/common/Task/variables/deferredDisposedError).

## See

[createGate](https://evolu.dev/docs/api-reference/common/Task/functions/createGate)

## Extends

- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management)

## Methods

<a id="dispose"></a>

### \[dispose\]()

```ts
dispose: void;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts:36

#### Inherited from

```ts
Disposable.[dispose]
```

## Properties

<a id="close"></a>

### close

```ts
readonly close: () => void;
```

Defined in: [packages/common/src/Task.ts:2299](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2299)

### isOpen

```ts
readonly isOpen: () => boolean;
```

Defined in: [packages/common/src/Task.ts:2300](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2300)

### open

```ts
readonly open: () => void;
```

Defined in: [packages/common/src/Task.ts:2298](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2298)

### wait

```ts
readonly wait: Task<void, DeferredDisposedError, D>;
```

Defined in: [packages/common/src/Task.ts:2297](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2297)