/**
- 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;