Package: effect
Module: SubscriptionRef
Modifies the SubscriptionRef atomically with a function that computes a
return value and a new value, notifying subscribers of the change.
Example (Modifying a value)
import { Effect, SubscriptionRef } from "effect"
const program = Effect.gen(function*() {
const ref = yield* SubscriptionRef.make(10)
const result = yield* SubscriptionRef.modify(ref, (n) => [
`Old value was ${n}`,
n * 2
])
console.log(result)
const newValue = yield* SubscriptionRef.get(ref)
console.log("New value:", newValue)
})
Signature
declare const modify: { <A, B>(modify: (a: A) => readonly [B, A]): (self: SubscriptionRef<A>) => Effect.Effect<B>; <A, B>(self: SubscriptionRef<A>, f: (a: A) => readonly [B, A]): Effect.Effect<B>; }
Since v2.0.0