RXJS play
by amindunited
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.2.2/rxjs.umd.min.js"></script>
JavaScript
const initState = {
init: true
};
const bs = new rxjs.BehaviorSubject(initState);
bs.subscribe((sub) => console.log('subscribed ', sub));
const updateName = (nameObj) => {
console.log('updateName ', bs.value);
const newObj = Object.assign(bs.value, nameObj);
bs.next(newObj);
}
const delayFn = (fn, delay) => {
setTimeout(fn, delay);
}
updateName({name: 'jimbo'});
delayFn(() => updateName({name: 'jones'}), 500 );
const reducerOne = (acc, curr) => {
console.log('reducerOne', acc, curr);
return acc;
};
store$ = new rxjs.BehaviorSubject(initialState) // main store stream seeded with state
.merge(...Object.values(streams)) // merge all reducers into single stream
.scan((state, reducer) => reducer(state))