jfee

turn NodeJS EventEmitters into asynchronous generators that one can iterate over with for-loops

Usage no npm install needed!

<script type="module">
  import jfee from 'https://cdn.skypack.dev/jfee';
</script>

README

JfEE

Table of Contents generated with DocToc

What it Does

JfEE (['dʒæfi], Generator from EventEmitter) provides a way to turn a NodeJS EventEmitter into an asynchronous generator, which is convenient in a lot of situations, such as when one wants to use an EventEmitter as the data source for pipelined data processing.

Usage

API

Acknowledgements

thx to https://stackoverflow.com/a/59347615/7568091

How it Works

Seems to be working so far.

i.e. you create a dummy promise like in Khanh's solution so that you can wait for the first result, but then because many results might come in all at once, you push them into an array and reset the promise to wait for the result (or batch of results). It doesn't matter if this promise gets overwritten dozens of times before its ever awaited.

Then we can yield all the results at once with yield* and flush the array for the next batch.

To Do

  • integrate with intertext-splitlines