Hyperlinkv0.8.0-beta.28

Result

Result.getOrElseconsteffect/Result.ts:1105
<E, A2>(onFailure: (err: E) => A2): <A>(self: Result<A, E>) => A2 | A
<A, E, A2>(self: Result<A, E>, onFailure: (err: E) => A2): A | A2

Extracts the success value, or computes a fallback from the error.

When to use

Use when you need the success value from a Result, with a fallback computed from the failure value.

Details

  • Success<A> returns the inner value
  • Failure<E> applies onFailure to the error and returns the result
  • The return type is A | A2 (union of both branches)

Example (Providing a fallback)

import { Result } from "effect"

console.log(Result.getOrElse(Result.succeed(1), () => 0))
// Output: 1

console.log(Result.getOrElse(Result.fail("err"), () => 0))
// Output: 0
Source effect/Result.ts:11058 lines
export const getOrElse: {
  <E, A2>(onFailure: (err: E) => A2): <A>(self: Result<A, E>) => A2 | A
  <A, E, A2>(self: Result<A, E>, onFailure: (err: E) => A2): A | A2
} = dual(
  2,
  <A, E, A2>(self: Result<A, E>, onFailure: (err: E) => A2): A | A2 =>
    isFailure(self) ? onFailure(self.failure) : self.success
)
Referenced by 2 symbols