Hyperlinkv0.8.0-beta.28

Queue

Queue.failconsteffect/Queue.ts:854
<A, E>(self: Enqueue<A, E>, error: E): Effect<boolean, never, never>

Fails the queue with an error. If the queue is already done, false is returned.

Example (Failing queues with an error)

import { Effect, Queue } from "effect"

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

  // Fail the queue with an error
  const failed = yield* Queue.fail(queue, "Something went wrong")
  console.log(failed) // true

  // Taking from the failed queue fails with the error
  const error = yield* Effect.flip(Queue.take(queue))
  console.log(error) // "Something went wrong"
})
completion
Source effect/Queue.ts:8541 lines
export const fail = <A, E>(self: Enqueue<A, E>, error: E) => failCause(self, core.causeFail(error))