Hyperlinkv0.8.0-beta.28

TxDeferred

TxDeferred.makeconsteffect/TxDeferred.ts:111
<A, E = never>(): Effect.Effect<TxDeferred<A, E>>

Creates a new empty TxDeferred.

When to use

Use to create a transactional deferred that can be completed exactly once.

Example (Creating a transactional deferred)

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

const program = Effect.gen(function*() {
  const deferred = yield* TxDeferred.make<string, Error>()
  const state = yield* TxDeferred.poll(deferred)
  console.log(Option.isNone(state)) // true
})
constructors
export const make = <A, E = never>(): Effect.Effect<TxDeferred<A, E>> =>
  Effect.map(TxRef.make<Option<Result<A, E>>>(O.none()), makeTxDeferred)