Hyperlinkv0.8.0-beta.28

Channel

Channel.runIntoQueueArrayconsteffect/Channel.ts:8162
<OutElem, OutErr>(queue: Queue.Queue<OutElem, OutErr | Cause.Done>): <
  OutDone,
  Env
>(
  self: Channel<
    Arr.NonEmptyReadonlyArray<OutElem>,
    OutErr,
    OutDone,
    unknown,
    unknown,
    unknown,
    Env
  >
) => Effect.Effect<void, never, Env>
<OutElem, OutErr, OutDone, Env>(
  self: Channel<
    Arr.NonEmptyReadonlyArray<OutElem>,
    OutErr,
    OutDone,
    unknown,
    unknown,
    unknown,
    Env
  >,
  queue: Queue.Queue<OutElem, OutErr | Cause.Done>
): Effect.Effect<void, never, Env>

Runs a channel that emits non-empty arrays and offers each array element into a queue.

Details

When the channel completes, the queue is ended. When the channel fails, the queue is failed with the channel's cause. The returned effect itself completes with void.

destructors
Source effect/Channel.ts:816229 lines
export const runIntoQueueArray: {
  <OutElem, OutErr>(queue: Queue.Queue<OutElem, OutErr | Cause.Done>): <OutDone, Env>(
    self: Channel<Arr.NonEmptyReadonlyArray<OutElem>, OutErr, OutDone, unknown, unknown, unknown, Env>
  ) => Effect.Effect<void, never, Env>
  <OutElem, OutErr, OutDone, Env>(
    self: Channel<Arr.NonEmptyReadonlyArray<OutElem>, OutErr, OutDone, unknown, unknown, unknown, Env>,
    queue: Queue.Queue<OutElem, OutErr | Cause.Done>
  ): Effect.Effect<void, never, Env>
} = dual(
  (args) => isChannel(args[0]),
  <OutElem, OutErr, OutDone, Env>(
    self: Channel<Arr.NonEmptyReadonlyArray<OutElem>, OutErr, OutDone, unknown, unknown, unknown, Env>,
    queue: Queue.Queue<OutElem, OutErr | Cause.Done>
  ): Effect.Effect<void, never, Env> =>
    Effect.uninterruptibleMask((restore) =>
      runForEach(self, (value) => Queue.offerAll(queue, value)).pipe(
        restore,
        Effect.exit,
        Effect.flatMap((exit) => {
          if (Exit.isSuccess(exit)) {
            Queue.endUnsafe(queue)
          } else {
            Queue.failCauseUnsafe(queue, exit.cause)
          }
          return Effect.void
        })
      )
    )
)
Referenced by 2 symbols