Package: effect
Module: SubscriptionRef
Retrieves the current value and updates it atomically with the result of applying a function, notifying subscribers of the change.
Example (Getting and updating a value)
import { Effect, SubscriptionRef } from "effect"
const program = Effect.gen(function*() {
const ref = yield* SubscriptionRef.make(10)
const oldValue = yield* SubscriptionRef.getAndUpdate(ref, (n) => n * 2)
console.log("Old value:", oldValue)
const newValue = yield* SubscriptionRef.get(ref)
console.log("New value:", newValue)
})
Signature
declare const getAndUpdate: { <A>(update: (a: A) => A): (self: SubscriptionRef<A>) => Effect.Effect<A>; <A>(self: SubscriptionRef<A>, update: (a: A) => A): Effect.Effect<A>; }
Since v2.0.0