关于 Rxjs 请教一个问题

2020-03-26 17:35:45 +08:00
 ccsulzf0627

需求:

两个 Observable

过滤条件 Observable
分页 Observable

过滤条件改变和分页的改变都要请求后台
combinaLast ( A,B )将过滤条件和分页组装传到后台的

但是过滤条件改变我点击查询,分页要重新从第一页开始

当前解决办法:

我在分页组件中监听过滤条件的改变,然后初始化,重新用分页的 Observable 发送初始值
但是 combinaLast 会抛出两次

求助:

这样的需求,怎么设计才合理呢?
1137 次点击
所在节点    问与答
4 条回复
9ki
2020-03-26 17:50:19 +08:00
感觉你这个有点强行用 rxjs 的味道,如果要解决现在这个问题可以用 distinctUntilChanged 操作符,判断一下是否和上一次相同即可
ccsulzf0627
2020-03-26 17:54:16 +08:00
@9ki 假如分页条件是 5,我点击查询,然后 combinaLast 发出是 5,这是第一次,然后分页组件监听到过滤条件的改变,初始化为 1,然后 combinaLast 发出是 1,这是第二次
rrfeng
2020-03-26 18:21:45 +08:00
创建一个 Subject 用来接收变更事件。
两个条件存到两个变量里。并且 subscribe 对应的 Observable 进行更改,并且给上面的 Subject 发消息。

通过监听 Subject 来发起 http 请求,获取数据,参数从变量里取。
mara1
2020-03-26 19:39:56 +08:00
这个玩意儿是真难用,我写过 1 个项目用这个,项目结束了我还对这个东西迷迷瞪瞪的。后边的项目我都建议不要用这个了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656461

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX