Rx java 为什么一个不支持背压的可观察对象在收到请求通知时会不断发出项目?

Rx java 为什么一个不支持背压的可观察对象在收到请求通知时会不断发出项目?,rx-java,Rx Java,根据可观察的合同 不实施背压的可观察到的压力应响应 观察员通过发出OnError通知发出的请求通知 这表明不支持背压 然而,我在下面尝试过,它没有通知onError。 此外,它甚至忽略了请求通知 Observable.interval(1L, TimeUnit.MICROSECONDS) .subscribe(new Subscriber<Long>() { @Override public void onStart() { super

根据可观察的合同

不实施背压的可观察到的压力应响应 观察员通过发出OnError通知发出的请求通知 这表明不支持背压

然而,我在下面尝试过,它没有通知onError。 此外,它甚至忽略了请求通知

Observable.interval(1L, TimeUnit.MICROSECONDS)
    .subscribe(new Subscriber<Long>() {
      @Override
      public void onStart() {
        super.onStart();
        request(1L);
      }

      @Override
      public void onNext(Long t) {
        System.out.println("t=" + t);
      }

      @Override
      public void onCompleted() {
        System.out.println("completed");
      }

      @Override
      public void onError(Throwable e) {
        e.printStackTrace();
      }
    });
可观测间隔(1L,时间单位,微秒)
.subscribe(新订户(){
@凌驾
public void onStart(){
super.onStart();
请求(1L);
}
@凌驾
下一个公共空区(长t){
System.out.println(“t=“+t”);
}
@凌驾
未完成的公共无效(){
系统输出打印项次(“完成”);
}
@凌驾
公共无效申报人(可丢弃的e){
e、 printStackTrace();
}
});
我认为,当订户向不支持背压的可观测对象发送请求通知时,可观测对象会发送OnError通知,正如可观测联系人所说

由于它不会以OnError通知结束,并且开发人员可能认为请求通知正在工作,所以测试不好的应用程序可能会有在产品发布后很难注意到的bug


是否有任何理由不发送OnError通知?

1.x中的背压是强制的一半。这些来源只是忽略请求,如果不能跟上,其他一些中间运营商可能会报告MissingBackpressureException。2.x将更加严格,如果源不能发出其值,则源本身将发出错误信号。

感谢您的回答!很高兴知道这一点,也很高兴听到关于2.x的消息。那么,是否没有理由不发送OnError通知?例如,发送OneError通知非常理想,但不容易使用,因为OneError通知发送得太频繁。