Package: effect
Module: Stream
Runs the provided effect before this stream starts.
Example (Running an effect on start)
import { Console, Effect, Stream } from "effect"
const program = Effect.gen(function*() {
const stream = Stream.fromArray([1, 2, 3]).pipe(
Stream.onStart(Console.log("Stream started"))
)
const values = yield* Stream.runCollect(stream)
yield* Console.log(values)
})
Effect.runPromise(program)
// Output:
// Stream started
// [1, 2, 3]
Signature
declare const onStart: { <X, EX, RX>(onStart: 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>, onStart: Effect.Effect<X, EX, RX>): Stream<A, E | EX, R | RX>; }
Since v3.6.0