模块 java.base

接口 Flow.Publisher<T>

类型参数:
T - 发布的项目类型
所有已知的子接口:
Flow.Processor<T,R> , HttpRequest.BodyPublisher
所有已知的实现类:
SubmissionPublisher
封闭类:
Flow
函数接口:
这是一个功能接口,因此可以用作 lambda 表达式或方法引用的赋值目标。

@FunctionalInterface public static interface Flow.Publisher<T>
订阅者收到的项目(和相关控制消息)的生产者。每个当前 Flow.Subscriber 以相同的顺序接收相同的项目(通过方法 onNext ),除非遇到掉落或错误。如果发布者遇到不允许向订阅者发布项目的错误,则该订阅者会收到 onError ,然后不会再收到任何消息。否则,当知道不会再向它发出更多消息时,订阅者会收到 onComplete 。发布者确保每个订阅的订阅者方法调用严格按照发生之前顺序进行。

出版商可能会在是否将丢弃(由于资源限制而未能发布项目)视为不可恢复的错误方面制定不同的策略。发布者也可能会改变订阅者是否收到在他们订阅之前生产或可用的项目。

  • 方法总结

    修饰符和类型
    方法
    描述
    void
    subscribe(Flow.Subscriber<? super T> subscriber)
    如果可能,添加给定的订阅者。
  • 方法详情

    • subscribe

      void subscribe(Flow.Subscriber <? super T > subscriber)
      如果可能,添加给定的订阅者。如果已经订阅,或者由于违反策略或错误而尝试订阅失败,订阅者的 onError 方法将被调用 IllegalStateException 。否则,使用新的 Flow.Subscription 调用订阅者的 onSubscribe 方法。订阅者可以通过调用此订阅的 request 方法启用接收项目,并可以通过调用其 cancel 方法取消订阅。
      参数:
      subscriber - 订户
      抛出:
      NullPointerException - 如果订阅者为空