effect-io-ai

Package: effect
Module: Channel

Channel.onFirst

Runs an effect the first time the channel emits an output element.

When to use

Use when initialization depends on the first output element rather than only on channel startup.

Details

The effect receives the first emitted element. The first element is still emitted unchanged. The effect is not run if the channel completes without emitting an element.

Signature

declare const onFirst: { <OutElem, A, E, R>(onFirst: (element: Types.NoInfer<OutElem>) => Effect.Effect<A, E, R>): <OutErr, OutDone, InElem, InErr, InDone, Env>(self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>) => Channel<OutElem, OutErr | E, OutDone, InElem, InErr, InDone, Env | R>; <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, A, E, R>(self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>, onFirst: (element: Types.NoInfer<OutElem>) => Effect.Effect<A, E, R>): Channel<OutElem, OutErr | E, OutDone, InElem, InErr, InDone, Env | R>; }

Source

Since v4.0.0