effect-io-ai

Package: effect
Module: Stream

Stream.onEnd

Runs the provided effect when the stream ends successfully.

Example (Running an effect on end)

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

const program = Effect.gen(function*() {
  const values = yield* Stream.make(1, 2, 3).pipe(
    Stream.onEnd(Console.log("Stream ended")),
    Stream.runCollect
  )
  yield* Console.log(values)
})

Effect.runPromise(program)
// Stream ended
// [1, 2, 3]

Signature

declare const onEnd: { <X, EX, RX>(onEnd: Effect.Effect<X, EX, RX>): <A, E, R>(self: Stream<A, E, R>) => Stream<A, E | EX, R | RX>; <A, E, R, X, EX, RX>(self: Stream<A, E, R>, onEnd: Effect.Effect<X, EX, RX>): Stream<A, E | EX, R | RX>; }

Source

Since v3.6.0