doc: 阅读disposable文档

This commit is contained in:
asahi
2025-03-24 12:46:06 +08:00
parent fda63dcc4a
commit 36dee5bcc4

View File

@@ -152,3 +152,20 @@ Flux.range(5,3)
[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`方法不能被并行调用。