useStreamFromReactiveValues
All checks were successful
Lint / lint (push) Successful in 14s

This commit is contained in:
Julien Valverdé
2025-05-08 01:15:35 +02:00
parent 04e78e1ea3
commit 39765102db
2 changed files with 3 additions and 26 deletions

View File

@@ -489,9 +489,9 @@ export abstract class ReffuseNamespace<R> {
Effect.provideService(Scope.Scope, scope), Effect.provideService(Scope.Scope, scope),
), [scope]) ), [scope])
this.useEffect(() => Effect.andThen( this.useEffect(() => Ref.set(latest, values).pipe(
Ref.set(latest, values), Effect.andThen(PubSub.publish(pubsub, values)),
PubSub.publish(pubsub, values), Effect.unlessEffect(PubSub.isShutdown(pubsub)),
), values) ), values)
return stream return stream

View File

@@ -1,23 +0,0 @@
import { Console, Effect, Fiber, Ref, Stream, SubscriptionRef } from "effect"
await Effect.gen(function*() {
const ref = yield* SubscriptionRef.make("juif")
const stream = ref.changes
const f1 = yield* Stream.runForEach(stream, v => Console.log(`observer 1: ${ v }`)).pipe(
Effect.fork,
)
const f2 = yield* Effect.sleep("200 millis").pipe(
Effect.andThen(Stream.runForEach(stream, v => Console.log(`observer 2: ${ v }`))),
Effect.fork,
)
const f3 = yield* Effect.sleep("100 millis").pipe(
Effect.andThen(Ref.set(ref, "adolf")),
Effect.fork,
)
yield* Fiber.joinAll([f1, f2, f3])
}).pipe(
Effect.runPromise
)