Package: effect
Module: Queue
Attempts to take one item from the queue without waiting.
Details
Returns Option.some when an item is immediately available. Returns
Option.none when no item is available, when the queue is done, or when the
immediate take observes a queue failure.
Example (Polling without blocking)
import { Effect, Option, Queue } from "effect"
const program = Effect.gen(function*() {
const queue = yield* Queue.bounded<number>(10)
// Poll returns Option.none if empty
const maybe1 = yield* Queue.poll(queue)
console.log(Option.isNone(maybe1)) // true
// Add an item
yield* Queue.offer(queue, 42)
// Poll returns Option.some with the item
const maybe2 = yield* Queue.poll(queue)
console.log(Option.getOrNull(maybe2)) // 42
})
Signature
declare const poll: <A, E>(self: Dequeue<A, E>) => Effect<Option.Option<A>>
Since v2.0.0