Skip to main content

Recursivity and Observables: yes it is possible

When writing a loop using a paging API to fetch data for an Angular app, I felt so frustrated  that I was very close to going back to Promises.

I came across lot of questions on the web but no convincing answers: some even proposing to subscribe to an Observable within the service implementation. However, I did not abandon  Observables to return using Promises thanks to this very informative comparison. From there I picked an excellent article on reactive programming with RxJava which gave me hope.

So I kept on trying...

Achieving both reactivity and recursivity without understanding the fundamentals of RxJs operators, was a struggle.

After focussing on the use of the map and mergeMap operators, I managed a first implementation very similar to how I would write a solution to the same problem using Promises. To help me and others who have the same questions, I created a repository of angular code snippets. One is about RxJs Recursive Observable.

Expand operator to the rescue...

Notes about the expand operator

As a second stage, I introduced the reactive behaviour with the expand operator which I came across in the post. The RxJs Observable reactive recursivity code snippet illustrates the use of the expand operator to read a paging API.

Your feedback is very much appreciated, do not hesitate to comment ....

Comments