effect-io-ai

Package: effect
Module: TxQueue

TxQueue.poll

Tries to take an item from the queue without blocking.

Example (Polling without blocking)

import { Effect, Option, TxQueue } from "effect"

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

  // Poll returns Option.none if empty
  const maybe = yield* TxQueue.poll(queue)
  console.log(Option.isNone(maybe)) // true

  yield* TxQueue.offer(queue, 42)
  const item = yield* TxQueue.poll(queue)
  console.log(Option.getOrNull(item)) // 42
})

Signature

declare const poll: <A, E>(self: TxDequeue<A, E>) => Effect.Effect<Option.Option<A>>

Source

Since v2.0.0