Mult
Overview
import { iterate, put } from 'csp-coffee/operators';
import { go } from 'csp-coffee/go';
import { makeChannel } from 'csp-coffee/channel';
import { CreatableBufferType } from 'csp-coffee/buffer';
import { attachMulter, tap } from 'csp-coffee/mult';
const sourceCh = makeChannel(CreatableBufferType.UNBLOCKING);
const destCh1 = makeChannel(CreatableBufferType.UNBLOCKING, 1);
const destCh2 = makeChannel(CreatableBufferType.UNBLOCKING, 1);
function* mainGenerator () {
attachMulter(sourceCh);
tap(sourceCh, destCh1);
tap(sourceCh, destCh2);
yield put(sourceCh, 'test1');
yield put(sourceCh, 'test2');
yield iterate((value) => {
console.log(value);
}, destCh1, destCh2);
}
go(mainGenerator)
// 'test1'
// 'test1'
// 'test2'
// 'test2'Filtering values based on a predicate
API
attachMulter<T = any>(ch: Channel): void
tap<T = any>(sourceChannel: Channel, destinationChannel: Channel, filter?: (data: T) => boolean): void
untap<T = any>(sourceChannel: Channel, destinationChannelId: string): void
Last updated