If getJSON() is a description of the request, then redux-observable is still declarative.
James DiGioia

…if you were writing in a pure functional language and composed a chain of functions, and one of those functions created an IO monad that you mapped over its result to do some additional processing of the data, it would still be declarative.

This is not what redux-observable sponsors in their examples. Mid-way through a chain of observables you have other observables which actually trigger side effects and are not simply processing data.

If redux-observable simply “described” without the “triggering” then it would be declarative. But when the flow gets to that .mergeMap(), it’s gonna trigger an HTTP request. Hence imperative.

Like what you read? Give Luca Matteis a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.