Hyperlinkv0.8.0-beta.28

Stream

Stream.orElseSucceedconsteffect/Stream.ts:5952
<E, A2>(f: (error: E) => A2): <A, R>(
  self: Stream<A, E, R>
) => Stream<A | A2, never, R>
<A, E, R, A2>(self: Stream<A, E, R>, f: (error: E) => A2): Stream<
  A | A2,
  never,
  R
>

Returns a stream that emits a fallback value when this stream fails.

Example (Recovering with a fallback value)

import { Console, Effect, Stream } from "effect"

const program = Effect.gen(function*() {
  const stream = Stream.fail("NetworkError").pipe(
    Stream.orElseSucceed((error) => `Recovered: ${error}`)
  )

  const values = yield* Stream.runCollect(stream)
  yield* Console.log(values)
})

Effect.runPromise(program)
// Output: [ "Recovered: NetworkError" ]
error handling
Source effect/Stream.ts:595212 lines
export const orElseSucceed: {
  <E, A2>(
    f: (error: E) => A2
  ): <A, R>(self: Stream<A, E, R>) => Stream<A | A2, never, R>
  <A, E, R, A2>(
    self: Stream<A, E, R>,
    f: (error: E) => A2
  ): Stream<A | A2, never, R>
} = dual(2, <A, E, R, A2>(
  self: Stream<A, E, R>,
  f: (error: E) => A2
): Stream<A | A2, never, R> => catch_(self, (e) => succeed(f(e))))