@santoshrajan/async-iterators

0.0.1 • Public • Published

async-iterators

Asynchronous iterators for event handilng in JavaScript

install

Just copy index.mjs to the relevant folder

Example

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Click Counter</title>
  </head>
<body>
  <h1>Click Counter</h1>
  <div id='counter'></div>
  <button id='plus'>+</button>
  <button id='minus'>-</button>

<script type='module'>

import {
  clickIterator,
  mapIterator,
  mergeIterators,
  runIterator
 } from './index.mjs'

const store = function createStore () {
  var counter = 0
  return (n) => counter += n 	
}()

function render (n) {
  document.querySelector('#counter').textContent = n
  return n
}

function pipe (...fns) {
  return function (n) {
    for (const f of fns) n = f(n)
  }
}

const handleButtonClicks = pipe(store, render)

const plusIterator = mapIterator(clickIterator('#plus'), e => 1)

const minusIterator = mapIterator(clickIterator('#minus'), e => -1)

const allIterator = mergeIterators(plusIterator, minusIterator)

runIterator(allIterator, handleButtonClicks)

handleButtonClicks(0)

</script>
</body>
</html>

Package Sidebar

Install

npm i @santoshrajan/async-iterators

Weekly Downloads

2

Version

0.0.1

License

MIT

Unpacked Size

3.81 kB

Total Files

4

Last publish

Collaborators

  • santoshrajan