effect-io-ai

Package: effect
Module: TxPubSub

TxPubSub.publishAll

Publishes all messages from an iterable to all current subscribers.

Details

Returns true if all messages were delivered to all subscribers.

Example (Publishing multiple messages to subscribers)

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

const program = Effect.gen(function*() {
  const hub = yield* TxPubSub.unbounded<number>()

  yield* Effect.scoped(
    Effect.gen(function*() {
      const sub = yield* TxPubSub.subscribe(hub)
      yield* TxPubSub.publishAll(hub, [1, 2, 3])
      const v1 = yield* TxQueue.take(sub)
      const v2 = yield* TxQueue.take(sub)
      const v3 = yield* TxQueue.take(sub)
      console.log(v1, v2, v3) // 1 2 3
    })
  )
})

Signature

declare const publishAll: { <A>(values: Iterable<A>): (self: TxPubSub<A>) => Effect.Effect<boolean>; <A>(self: TxPubSub<A>, values: Iterable<A>): Effect.Effect<boolean>; }

Source

Since v2.0.0