API reference › @evolu/common › Task › map
Call Signature
function map<A, T, E, D>(
items: Iterable<A>,
task: (a: A) => Task<T, E, D>,
options?: CollectOptions<true>,
): Task<readonly T[], E, D>;
Defined in: packages/common/src/Task.ts:3274
Maps values to Tasks, failing fast on first error.
Sequential by default — use concurrently for concurrent execution.
Example
const result = await run(map(userIds, fetchUser));
if (!result.ok) return result;
// result.value: ReadonlyArray<User>
See
Call Signature
function map<A, T, E, D, K>(
items: Readonly<Record<K, A>>,
task: (a: A) => Task<T, E, D>,
options?: CollectOptions<true>,
): Task<Readonly<Record<K, T>>, E, D>;
Defined in: packages/common/src/Task.ts:3289
Returns object with same keys.
const result = await run(map({ a: 1, b: 2 }, (n) => double(n)));
if (!result.ok) return result;
// result.value: { a: number, b: number }
Call Signature
function map<A, T, E, D>(
items: readonly [A, A],
task: (a: A) => Task<T, E, D>,
options?: CollectOptions<true>,
): Task<readonly [T, T], E, D>;
Defined in: packages/common/src/Task.ts:3305
Guarantees non-empty result.
const ids: NonEmptyReadonlyArray<UserId> = [id1, id2];
const result = await run(map(ids, fetchUser));
if (!result.ok) return result;
// result.value: NonEmptyReadonlyArray<User>
Call Signature
function map<A, T, E, D>(
items: Iterable<A, any, any> | Readonly<Record<string, A>>,
task: (a: A) => Task<T, E, D>,
options: CollectOptions<false>,
): Task<void, E, D>;
Defined in: packages/common/src/Task.ts:3319
Run for side effects only.
const result = await run(map(userIds, sendEmail, { collect: false }));
// result.value: void