doc: 阅读disposable文档
This commit is contained in:
@@ -151,4 +151,21 @@ Flux.range(5,3)
|
|||||||
[main]-5
|
[main]-5
|
||||||
[main]-6
|
[main]-6
|
||||||
[main]-Error Caught: fucking value {7} equals or greater than 7
|
[main]-Error Caught: fucking value {7} equals or greater than 7
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Disposable
|
||||||
|
上述`subscribe`方法的返回类型为`Disposable`,该接口代表subscriber对publisher的订阅是可取消的,如需取消订阅,调用`dispose`方法即可。
|
||||||
|
|
||||||
|
对于Mono和Flux而言,source publisher应该在接收到cancellation信号之后停止产生元素,`并不能保证取消信号是即时的`。(`若source产生数据的速度过快,可能在接收到cancel信号之前,source就已经complete`)。
|
||||||
|
|
||||||
|
`Disposables`类中存在一些对`Disposable`的工具方法,例如`swap`和`composite`。
|
||||||
|
|
||||||
|
#### BaseSubscriber
|
||||||
|
`subscribe`方法除了接收lambda外,还存在更通用的重载方法,接收`Subscriber`类型的参数。
|
||||||
|
|
||||||
|
在这种场景下,传参可以继承`BaseSubscriber`类。
|
||||||
|
|
||||||
|
并且,`BaseSubscriber`该类是一次性的,`其只能够订阅一个publisher,如果其订阅了第二个publisher,那么其对第一个publisher的订阅将会被取消`。
|
||||||
|
|
||||||
|
> `BaseSubscriber`只能订阅一个publisher的原因是reactive stream规范要求`onNext`方法不能被并行调用。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user