通过具体的示例,学习每个操作符的用法~
1.CombineLatest
当一个项目由两个Observable中的任何一个发出时,通过指定的函数组合每个Observable发出的最新项目,并根据该函数的结果发出项目。
示例:
输出结果:
2.Join
Join操作符根据另一个可观察器发射的项目定义的时间段内,每当一个可观测器发射的一个项目发射时,组合两个可观察器发射的项。

示例:
输出结果:
//第一个Observalble发送了5个数据,第二个Observalble只发送了一个数据。第二个Observalble的持续时间为3秒,所以只匹配到了3组数据,但是onComplete还是在5秒后才被调用。
3.Merge⭐️⭐️
将多个Observable合并成一个Observable。
- 每个Observable发送的数据是穿插且无序的,完全取决于事件发送的早或晚。如果对顺序有要求可以参考Concat操作符。
- 当某一个Observable出现异常,执行了OnError后,那么所有的事件发送都会终止。如果希望其他Observable不受OnError影响的话,可以参考MergeDelayError操作符。

示例:
输出结果:
4.StartWith⭐️
在开始从源Observable发出项目之前发出指定的项目序列。

示例:
输出结果:
5.Switch
Switch操作符可以理解为用来切换观察者,切换后开始发送新的Observable的事件,原来的Observable事件将被舍弃。

示例:
输出结果:
示例2:
输出结果:
6.Zip⭐️⭐️
Zip操作符定义函数将多个Observable的发射事项组合在一起,并将该函数的返回结果作为一个组合事项发送。事项组合是一一对应的,没有匹配的事项会被舍弃。

示例:
输出结果:



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198353.html