const intervalStream = Stream.fromSchedule(Schedule.spaced('500 millis'))
.pipe(Stream.tap(Console.log));
const module = Effect.gen(function* () {
const pubsub = yield* PubSub.unbounded<Take.Take<number>>();
yield* Effect.fork(Effect.gen(function *(){
const dequeue = yield* PubSub.subscribe(pubsub);
const take = yield* Queue.take(dequeue);
const result = yield * Take.done(take);
console.log(result);
}));
yield* Effect.fork(Stream.runIntoPubSub(intervalStream, pubsub));
})
NodeRuntime.runMain(Effect.awaitAllChildren(Effect.scoped(module)))
const intervalStream = Stream.fromSchedule(Schedule.spaced('500 millis'))
.pipe(Stream.tap(Console.log));
const module = Effect.gen(function* () {
const pubsub = yield* PubSub.unbounded<Take.Take<number>>();
yield* Effect.fork(Effect.gen(function *(){
const dequeue = yield* PubSub.subscribe(pubsub);
const take = yield* Queue.take(dequeue);
const result = yield * Take.done(take);
console.log(result);
}));
yield* Effect.fork(Stream.runIntoPubSub(intervalStream, pubsub));
})
NodeRuntime.runMain(Effect.awaitAllChildren(Effect.scoped(module)))