Hyperlinkv0.8.0-beta.28

TxRef

TxRef.updateconsteffect/TxRef.ts:212
<A>(f: (current: NoInfer<A>) => A): (
  self: TxRef<A>
) => Effect.Effect<void>
<A>(self: TxRef<A>, f: (current: A) => A): Effect.Effect<void>

Updates the value of the TxRef using the provided function.

When to use

Use to transform a TxRef when no result value is needed.

Example (Updating transactional references)

import { Effect, TxRef } from "effect"

const program = Effect.gen(function*() {
  const counter = yield* TxRef.make(10)

  // Update the value using a function
  yield* Effect.tx(
    TxRef.update(counter, (current) => current * 2)
  )

  console.log(yield* TxRef.get(counter)) // 20
})
combinators
Source effect/TxRef.ts:2127 lines
export const update: {
  <A>(f: (current: NoInfer<A>) => A): (self: TxRef<A>) => Effect.Effect<void>
  <A>(self: TxRef<A>, f: (current: A) => A): Effect.Effect<void>
} = dual(2, <A>(
  self: TxRef<A>,
  f: (current: A) => A
): Effect.Effect<void> => modify(self, (current) => [void 0, f(current)]))
Referenced by 15 symbols