模块  java.base
软件包  java.util.concurrent

Interface Flow.Publisher<T>

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

    @FunctionalInterface
    public static interface Flow.Publisher<T>
    订阅者收到的项目(和相关控制消息)的生产者。 除非遇到丢失或错误,否则每个当前Flow.Subscriber以相同的顺序接收相同的项目(通过方法onNext )。 如果发布者遇到不允许将项目发布到订阅服务器的错误,则该订阅服务器将收到onError ,然后不再接收任何消息。 否则,当知道不再向其发出消息时,订户接收onComplete 发布者确保每个订阅的订阅者方法调用严格按happens-before顺序排序。

    出版商可能会在政策方面有所不同,关于是否因为资源限制而导致项目失败(未能发布项目)被视为不可恢复的错误。 发布商还可能会对订阅者是否收到订阅前生成或可用的项目有所不同。

    • 方法详细信息

      • subscribe

        void subscribe​(Flow.Subscriber<? super T> subscriber)
        如果可能,添加给定的订阅者。 如果已经认购,或认购的尝试失败,因为违反政策或错误,用户的onError方法被调用与IllegalStateException 否则,将使用新的Flow.Subscription调用订阅者的onSubscribe方法。 订户可以使通过调用接收项目request这个订阅的方法,并且可以通过调用其退订cancel方法。
        参数
        subscriber - 订户
        异常
        NullPointerException - 如果订户为空