Jason Christa
Jason Christa

Reputation: 12508

Refactor Nested FlatMap in RxJS

I have a itemsObservable, filtersObservable, and a queryObservable and feed their values to a function that takes a list of items, filter conditions, and a search query, and returns a filtered list.

Right now my code looks something like:

itemsObservable
    .flatMap(items => {
        filtersObservable
            .flatMap(filters => {
                queryObservable
                    .map(query => filterItems(items, filters, query))
             })
     });

Is there a better code pattern for this that eschews the deep nesting?

Upvotes: 0

Views: 268

Answers (1)

André Staltz
André Staltz

Reputation: 14004

queryObservable.withLatestFrom(
    filtersObservable,
    itemsObservable,
    (query, filters, items) => filterItems(items, filters, query)
)

Upvotes: 1

Related Questions