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

```ts
type NextTask<T, E, D> = Task<T, E | Done<D>>;
```

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

A [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that can complete with a value, signal done, or fail.

Forms a pair with [NextResult](https://evolu.dev/docs/api-reference/common/Result/type-aliases/NextResult):

- `Result<A, E>` → `NextResult<A, E, D>`
- `Task<T, E>` → `NextTask<T, E, D>`

Use for pull-based protocols like iterators where `Done<D>` signals normal
completion rather than an error.