Package: effect
Module: Result
Chains a function that returns a Result onto a successful value.
When to use
Use to sequence Result-returning computations that should short-circuit on
failure.
Details
self is a Success, applies f to the value and returns the resulting Resultself is a Failure, short-circuits and returns it unchangedE | E2)bind / >>= for ResultExample (Validating sequentially)
import { pipe, Result } from "effect"
const result = pipe(
Result.succeed(5),
Result.flatMap((n) =>
n > 0 ? Result.succeed(n * 2) : Result.fail("not positive")
)
)
console.log(result)
// Output: { _tag: "Success", success: 10, ... }
See
andThen for a more flexible variant that also accepts plain valuesmap when f does not return a ResultSignature
declare const flatMap: { <A, A2, E2>(f: (a: A) => Result<A2, E2>): <E>(self: Result<A, E>) => Result<A2, E | E2>; <A, E, A2, E2>(self: Result<A, E>, f: (a: A) => Result<A2, E2>): Result<A2, E | E2>; }
Since v2.0.0