The
resultandarticlesdepend on each other ( if we add new article we need to update both theresultand thearticles), so our best choice is to use thezipoperator.
This is true only in highly simplified situation: what if something is modifying articles.entities in a way that has nothing to do with result (e.g., an article is modified but not added)? It will just broke the whole stream and keep it desynchronized.
The correct solution is of course to use combineLatest: everytime one of the two changes, there is a possibility for producing a new value.
Or even withLatestFrom, since change in result means a change in articles, but you have to be sure that articles.entities is changed before or at the same time than result in the store then (via a unique reducer or a batching action).