JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://rawgit.com/cujojs/most/master/dist/most.js"></script>
JavaScript
function log(s) {
var line = document.createElement('div');
line.textContent = s;
document.body.appendChild(line);
}
function emitter(clb) {
function emit(i) {
clb(i);
setTimeout(emit, Math.random()*1000, ++i);
}
setTimeout(emit, Math.random()*1000, 0);
}
function foo(clb) {
return emitter(clb);
}
function bar(clb) {
return emitter(clb);
}
// foo и bar принимают callback,
// в который периодически возвращаются значения
// задача: с помощью log, выводить суммы пар по возрастанию
// с гарантированной очередностью
//foo(log);
//bar(log);
const add = (x,y) => x + y;
most.create(foo)
.zip(add, most.create(bar))
.observe(log);