- 可连接的序列(Connectable Observable):
(1)可连接的序列和一般序列不同在于:有订阅时不会立刻开始发送事件消息,只有当调用 connect() 之后才会开始发送值。 (2)可连接的序列可以让所有的订阅者订阅后,才开始发出事件消息,从而保证我们想要的所有订阅者都能接收到事件消息
- publish
publish 方法会将一个正常的序列转换成一个可连接的序列。同时该序列不会立刻发送事件,只有在调用 connect 之后才会开始。
- replay
replay 同上面的 publish 方法相同之处在于:会将将一个正常的序列转换成一个可连接的序列。同时该序列不会立刻发送事件,只有在调用 connect 之后才会开始。* replay 与 publish 不同在于:新的订阅者还能接收到订阅之前的事件消息(数量由设置的 bufferSize 决定)
- multicast
multicast 方法同样是将一个正常的序列转换成一个可连接的序列。* 同时 multicast 方法还可以传入一个 Subject,每当序列发送事件时都会触发这个 Subject 的发送。
- refCount
refCount 操作符可以将可被连接的 Observable 转换为普通 Observable 即该操作符可以自动连接和断开可连接的 Observable。当第一个观察者对可连接的 Observable 订阅时,那么底层的 Observable 将被自动连接。当最后一个观察者离开时,那么底层的 Observable 将被自动断开连接。
- share(relay:)
该操作符将使得观察者共享源 Observable,并且缓存最新的 n 个元素,将这些元素直接发送给新的观察者。 简单来说 shareReplay 就是 replay 和 refCount 的组合
- delay
该操作符会将 Observable 的所有元素都先拖延一段设定好的时间,然后才将它们发送出来
- delaySubscription
使用该操作符可以进行延时订阅。即经过所设定的时间后,才对 Observable 进行订阅操作。
- materialize
该操作符可以将序列产生的事件,转换成元素。 通常一个有限的 Observable 将产生零个或者多个 onNext 事件,最后产生一个 onCompleted 或者 onError 事件。而 materialize 操作符会将 Observable 产生的这些事件全部转换成元素,然后发送出来。
- dematerialize
该操作符的作用和 materialize 正好相反,它可以将 materialize 转换后的元素还原
- timeout
使用该操作符可以设置一个超时时间。如果源 Observable 在规定时间内没有发任何出元素,就产生一个超时的 error 事件
- using
使用 using 操作符创建 Observable 时,同时会创建一个可被清除的资源,一旦 Observable 终止了,那么这个资源就会被清除掉了。
- catchErrorJustReturn
当遇到 error 事件的时候,就返回指定的值,然后结束。
- catchError
该方法可以捕获 error,并对其进行处理。 同时还能返回另一个 Observable 序列进行订阅(切换到新的序列)。
- retry
使用该方法当遇到错误的时候,会重新订阅该序列。比如遇到网络请求失败时,可以进行重新连接。 retry() 方法可以传入数字表示重试次数。不传的话只会重试一次。
- debug
我们可以将 debug 调试操作符添加到一个链式步骤当中,这样系统就能将所有的订阅者、事件、和处理等详细信息打印出来,方便我们开发调试