javascript - 在 RxJS 中重构嵌套 FlatMap

标签 javascript functional-programming reactive-programming rxjs flatmap

我有一个 itemsObservablefiltersObservablequeryObservable 并将它们的值提供给一个接受项目列表、过滤条件的函数,和一个搜索查询,并返回一个过滤列表。

现在我的代码看起来像这样:

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

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

最佳答案

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

关于javascript - 在 RxJS 中重构嵌套 FlatMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33573601/

相关文章:

angular - 如何从所有消息的可观察对象中创建未读消息的可观察对象

javascript - 访问主干模型的属性

javascript - 将对话框函数包装在 deviceReady 事件监听器中后未定义

php - 网站加载时卡住几秒钟

unit-testing - TDD 与函数式编程语言相比如何?

performance - Haskell程序运行速度很慢

javascript - 响应式编程 - 值大于 X 达 N 秒

javascript - 用于添加到购物车的 redux concat 数组

javascript - Ramda GroupBy - 如何按任何 Prop 分组

javascript - 如果没有匹配的累加器,RxJS 如何减少?