重构RxJS中的嵌套FlatMap

时间:2015-11-06 18:48:10

标签: javascript functional-programming reactive-programming rxjs flatmap

我有一个itemsObservablefiltersObservable和一个queryObservable,并将其值提供给一个获取项目列表,过滤条件和搜索查询的函数,并返回一个过滤清单。

现在我的代码看起来像:

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

是否有更好的代码模式可以避开深层嵌套?

1 个答案:

答案 0 :(得分:1)

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