1.1.0 • Published 6 years ago

callbag-for-each v1.1.0

Weekly downloads
2,969
License
MIT
Repository
github
Last release
6 years ago

/**

  • callbag-for-each

  • Callbag sink that consume both pullable and listenable sources. When called
  • on a pullable source, it will iterate through its data. When called on a
  • listenable source, it will observe its data.
  • npm install callbag-for-each
  • Examples

  • Consume a pullable source:
  • const fromIter = require('callbag-from-iter');
  • const forEach = require('callbag-for-each');
  • const source = fromIter([10,20,30,40])
  • forEach(x => console.log(x))(source); // 10
  •                                       // 20
  •                                       // 30
  •                                       // 40
  • Consume a listenable source:
  • const interval = require('callbag-interval');
  • const forEach = require('callbag-for-each');
  • const source = interval(1000);
  • forEach(x => console.log(x))(source); // 0
  •                                       // 1
  •                                       // 2
  •                                       // 3
  •                                       // ...
    */

const forEach = operation => source => { let talkback; source(0, (t, d) => { if (t === 0) talkback = d; if (t === 1) operation(d); if (t === 1 || t === 0) talkback(1); }); };

module.exports = forEach;