Odd Tens Observable
by gladtocode
HTML
<body>
Values:
</body>
JavaScript
const print = (value) => {
const paragraph = document.createElement('p');
paragraph.innerHTML = value;
document.body.appendChild(paragraph);
}
const integerObservable = (observer) => {
let x = 0;
setInterval(
() => {
x = x + 1;
observer(x);
},
500
);
};
const ignoreEvenOperator = (originalObservable) => {
return (observer) => {
originalObservable((originalValue) => {
if (originalValue % 2 == 1) {
// Only emit the value if it is odd
observer(originalValue);
}
});
}
}
const multiplyOperator = (originalObservable, multiplier) => {
return function(observer) {
// Our internalObserver observes the original stream, and for each
// value emitted, we emit a corresponding value -- the original value
// multipled by the specified multplier
const internalObserver = (value) => observer(value * multiplier);
originalObservable(internalObserver);
}
}
const oddTensObservable = multiplyOperator(ignoreEvenOperator(integerObservable), 10);
oddTensObservable(print);