Handling Node.js Events Correctly

how to handle Node events correctly?

right now I handle it like this but some times it get's stuck indefinitely:
export const onceEffect = <T>(
  emitter: EventEmitter,
  event: string,
) =>
  Effect.async<T>((resume) => {
    const handler = (data: T) => resume(Effect.succeed(data));
    emitter.once(event, handler);
  });


const program = Effect.gen(function* () {
  yield* Effect.logInfo("Waiting for 'loggedOn' event...");
  yield* onceEffect<void>(steamUser, "loggedOn");
  yield* Effect.logInfo("Inside 'loggedOn' event");
Was this page helpful?