Hyperlinkv0.8.0-beta.28

TxDeferred

TxDeferred.succeedconsteffect/TxDeferred.ts:256
<A>(value: A): <E>(self: TxDeferred<A, E>) => Effect.Effect<boolean>
<A, E>(self: TxDeferred<A, E>, value: A): Effect.Effect<boolean>

Completes the deferred with a success value. Returns true if this was the first completion, false if already completed.

When to use

Use to complete a TxDeferred with a successful value.

Example (Completing with a success value)

import { Effect, TxDeferred } from "effect"

const program = Effect.gen(function*() {
  const deferred = yield* TxDeferred.make<number>()
  const first = yield* TxDeferred.succeed(deferred, 42)
  console.log(first) // true
  const second = yield* TxDeferred.succeed(deferred, 99)
  console.log(second) // false
})
mutations
export const succeed: {
  <A>(value: A): <E>(self: TxDeferred<A, E>) => Effect.Effect<boolean>
  <A, E>(self: TxDeferred<A, E>, value: A): Effect.Effect<boolean>
} = dual(
  2,
  <A, E>(self: TxDeferred<A, E>, value: A): Effect.Effect<boolean> => done(self, Res.succeed(value))
)