Module  java.base
软件包  java.util.concurrent

Interface Flow.Publisher<T>

  • 参数类型
    T - 已发布的项目类型
    All Known Subinterfaces:
    Flow.Processor<T,R>HttpRequest.BodyProcessor
    所有已知实现类:
    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 - 如果用户为空