Package: effect
Module: Queue
Takes all messages from the queue, until the queue has errored or is done.
Example (Collecting values until completion)
import { Cause, Effect, Queue } from "effect"
const program = Effect.gen(function*() {
const queue = yield* Queue.bounded<number, Cause.Done>(5)
// Add several messages
yield* Queue.offerAll(queue, [1, 2, 3, 4, 5])
// Some time later, end the queue
yield* Effect.forkChild(Queue.end(queue))
// Collect all available messages
const messages = yield* Queue.collect(queue)
console.log(messages) // [1, 2, 3, 4, 5]
})
Signature
declare const collect: <A, E>(self: Dequeue<A, E | Done>) => Effect<Array<A>, Pull.ExcludeDone<E>>
Since v4.0.0