effect-io-ai

Package: effect
Module: Channel

Channel.callback

Creates a Channel that interacts with a callback function using a queue.

Example (Creating channels from callbacks)

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

const channel = Channel.callback<number>((queue) =>
  Effect.gen(function*() {
    yield* Queue.offer(queue, 1)
    yield* Queue.offer(queue, 2)
    yield* Queue.offer(queue, 3)
  })
)

Signature

declare const callback: <A, E = never, R = never>(f: (queue: Queue.Queue<A, E | Cause.Done>) => Effect.Effect<unknown, E, R | Scope.Scope>, options?: { readonly bufferSize?: number | undefined; readonly strategy?: "sliding" | "dropping" | "suspend" | undefined; }) => Channel<A, E, void, unknown, unknown, unknown, Exclude<R, Scope.Scope>>

Source

Since v4.0.0