purescript-node/purescript-node-event-emitter

Add `blockUntilX` functions

Opened this issue · 0 comments

A pattern I'm noticing in downstream Node libraries is something like this:

blockUntil1
  :: forall eventEmitter
   . eventEmitter 
  -> EventHandle eventEmitter (a -> Effect Unit) (EffectFn1 a Unit) 
  -> Aff Arg
blockUntil1 ee eventH = makeAff \done -> do
  removeListener <- ee # once eventH \arg ->
    done $ Right arg
  pure $ effectCanceler removeListener