- 类型参数:
-
T
- 发布的项目类型
- 所有已知的子接口:
-
Flow.Processor<T,
,R> HttpRequest.BodyPublisher
- 所有已知的实现类:
-
SubmissionPublisher
- 封闭类:
-
Flow
- 函数式接口:
- 这是一个函数式接口,因此可以用作lambda表达式或方法引用的赋值目标。
项目(及相关控制消息)的生产者,由订阅者接收。每个当前的
Flow.Subscriber
按相同顺序接收相同的项目(通过方法 onNext
),除非遇到丢弃或错误。如果发布者遇到不允许向订阅者发布项目的错误,该订阅者将收到 onError
,然后不再接收任何消息。否则,当已知不会再向其发布消息时,订阅者将收到 onComplete
。发布者确保每个订阅的订阅者方法调用严格按照 happens-before 顺序排序。
发布者可能在是否将丢弃(由于资源限制而无法发布项目)视为不可恢复错误的策略上有所不同。发布者也可能在订阅者在订阅之前生成或可用的项目是否接收上有所不同。
-
Method Summary
Modifier and TypeMethodDescriptionvoid
subscribe
(Flow.Subscriber<? super T> subscriber) 如果可能,添加给定的订阅者。
-
Method Details
-
subscribe
如果可能,添加给定的订阅者。如果已经订阅,或者由于策略违规或错误导致订阅失败,则使用IllegalStateException
调用订阅者的onError
方法。否则,使用新的Flow.Subscription
调用订阅者的onSubscribe
方法。订阅者可以通过调用此订阅的request
方法启用接收项目,并可以通过调用其cancel
方法取消订阅。- 参数:
-
subscriber
- 订阅者 - 抛出:
-
NullPointerException
- 如果订阅者为null
-