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

```ts
function any<TTasks>(
  tasks: TTasks,
  options?: TaskCollectionOptions,
): Task<
  InferTaskOk<TTasks[number]>,
  InferTaskErr<TTasks[number]>,
  ParameterIntersection<
    TTasks[number] extends TTask
      ? TTask extends AnyTask
        ? (deps: InferTaskDeps<TTask>) => void
        : never
      : never
  >
>;
```

Defined in: [packages/common/src/Task.ts:4064](https://github.com/evoluhq/evolu/blob/49ea8ca499566aba270f8cb601e7f49aa62320f8/packages/common/src/Task.ts#L4064)

Runs Tasks until one returns [Ok](https://evolu.dev/docs/api-reference/common/Result/interfaces/Ok) or all return [Err](https://evolu.dev/docs/api-reference/common/Result/interfaces/Err).

Use [race](https://evolu.dev/docs/api-reference/common/Task/functions/race) to return the first settled Result instead, whether Ok or
[Err](https://evolu.dev/docs/api-reference/common/Result/interfaces/Err).

Returns the first [Ok](https://evolu.dev/docs/api-reference/common/Result/interfaces/Ok) Result. Losing Tasks are aborted. If no Task
returns Ok, returns the last Err by input order, regardless of completion
order. Other Err results are discarded; use [allSettled](https://evolu.dev/docs/api-reference/common/Task/functions/allSettled) when you need
every error.

Sequential by default; pass a `concurrency` option to run more than one Task
at a time.

Similar to
[Promise.any](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any),
but races Tasks, returns Result values, and aborts losers.

### Example

```ts

const unavailable: Task<string, "Unavailable"> = () => err("Unavailable");
let fallbackStarted = false;
const fallback: Task<string> = () => {
  fallbackStarted = true;
  return ok("fallback");
};

await using run = createRun();
const result = await run(any([unavailable, fallback]));

expectTypeOf(result).toEqualTypeOf<Result<string, "Unavailable">>();
expectOk(result, "fallback");
expect(fallbackStarted).toBe(true);
```