[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) › timeout

```ts
function timeout<T, E, D>(
  task: Task<T, E, D>,
  duration: Duration,
  __namedParameters?: {
    abortReason?: unknown;
  },
): Task<T, E | TimeoutError, D>;
```

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

Wraps a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) with a time limit.

Returns [TimeoutError](https://evolu.dev/docs/api-reference/common/Task/variables/TimeoutError-1) if the Task doesn't complete within the specified
duration. The original Task is aborted when the timeout fires.

### Example

```ts
const fetchWithTimeout = timeout(fetchData, "5s");

const result = await run(fetchWithTimeout);
if (!result.ok && result.error.type === "TimeoutError") {
  console.log("Request timed out");
}
```