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))