Hyperlinkv0.8.0-beta.28

Channel

Channel.onErrorconsteffect/Channel.ts:6942
<OutDone, OutErr, Env2>(
  finalizer: (
    cause: Cause.Cause<OutErr>
  ) => Effect.Effect<unknown, never, Env2>
): <OutElem, InElem, InErr, InDone, Env>(
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>
) => Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env2 | Env>
<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, Env2>(
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
  finalizer: (
    cause: Cause.Cause<OutErr>
  ) => Effect.Effect<unknown, never, Env2>
): Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env2 | Env>

Attaches a finalizer that runs only when the channel exits with failure.

Details

The finalizer receives the failure Cause. The original channel failure is preserved. The finalizer itself must not fail.

error handling
Source effect/Channel.ts:694215 lines
export const onError: {
  <OutDone, OutErr, Env2>(
    finalizer: (cause: Cause.Cause<OutErr>) => Effect.Effect<unknown, never, Env2>
  ): <OutElem, InElem, InErr, InDone, Env>(
    self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>
  ) => Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env2 | Env>
  <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, Env2>(
    self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
    finalizer: (cause: Cause.Cause<OutErr>) => Effect.Effect<unknown, never, Env2>
  ): Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env2 | Env>
} = dual(2, <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env, Env2>(
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
  finalizer: (cause: Cause.Cause<OutErr>) => Effect.Effect<unknown, never, Env2>
): Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env2 | Env> =>
  onExit(self, (exit) => Exit.isFailure(exit) ? finalizer(exit.cause) : Effect.void))
Referenced by 1 symbols