Skip to content

traverseTaskResult

traverseTaskResult<E, A, B>(f): (data) => Task<Result<E, readonly B[]>>

Defined in: Utils/Arr.ts:466

Maps each element to a TaskResult and runs them sequentially. Returns the first Err encountered, or Ok of all results if all succeed.

E

A

B

(a) => Task<Result<E, B>>

(data): Task<Result<E, readonly B[]>>

readonly A[]

Task<Result<E, readonly B[]>>

const validate = (n: number): TaskResult<string, number> =>
  n > 0 ? TaskResult.ok(n) : TaskResult.err("non-positive");

pipe(
  [1, 2, 3],
  Arr.traverseTaskResult(validate)
)(); // Deferred<Ok([1, 2, 3])>

pipe(
  [1, -1, 3],
  Arr.traverseTaskResult(validate)
)(); // Deferred<Err("non-positive")>