effect-io-ai

Package: effect
Module: Queue

Queue.into

Runs an Effect into a Queue, where success ends the queue and failure fails the queue.

Example (Running effects into queues)

import { Cause, Effect, Queue } from "effect"

const program = Effect.gen(function*() {
  const queue = yield* Queue.bounded<number, Cause.Done>(10)

  // Create an effect that succeeds
  const dataProcessing = Effect.gen(function*() {
    yield* Effect.sleep("100 millis")
    return "Processing completed successfully"
  })

  // Pipe the effect into the queue
  // If dataProcessing succeeds, queue ends successfully
  // If dataProcessing fails, queue fails with the error
  const effectIntoQueue = Queue.into(queue)(dataProcessing)

  const wasCompleted = yield* effectIntoQueue
  console.log("Queue operation completed:", wasCompleted) // true

  // Queue state now reflects the effect's outcome
  console.log("Queue state:", queue.state._tag) // "Done"
})

Signature

declare const into: { <A, E>(self: Enqueue<A, E | Done>): <AX, EX extends E, RX>(effect: Effect<AX, EX, RX>) => Effect<boolean, never, RX>; <AX, E, EX extends E, RX, A>(effect: Effect<AX, EX, RX>, self: Enqueue<A, E | Done>): Effect<boolean, never, RX>; }

Source

Since v4.0.0