BUFFER_SIZE = Math.max(1, Integer.getInteger(“rx2.buffer-size”, 128));
}
…
}
通过上面的例子,我们可以看到create方法中的包含了一个BackpressureStrategy媒体类,其包含5种类型:
4.2.1. ERROR
把上面例子改为ERROR类型,执行结果如下:
总结 :当被观察者发送事件大于128时,观察者抛出异常并终止接收事件,但不会影响被观察者继续发送事件。
4.2.2. BUFFER
把上面例子改为BUFFER类型,执行结果如下:
总结 :与Observable一样存在背压问题,但是接收性能比Observable低,因为BUFFER类型通过BufferAsyncEmitter添加了额外的逻辑处理,再发送至观察者。
4.2.3. DROP
把上面例子改为DROP类型,执行结果如下:
总结 :每当观察者接收128事件之后,就会丢弃部分事件。
4.2.4. LATEST
把上面例子改为LATEST类型,执行结果如下:
总结 :LATEST与DROP使用效果一样,但LATEST会保证能接收最后一个事件,而DROP则不