我试图编写一个测试来查看在RxScala中使用onBackPressureDrop。
我用一个简单的拉链功能来拉动一个快速的Obserable。
奇怪的是,RxJava中的相同示例产生异常但是使用RxScala它似乎不需要onBackPressureDrop指令。
测试如下:
@Test def testWithoutBackPressure() {
val fast = Observable.interval(1 millis).take(100)
val slow = Observable.interval(1000 millis).take(100)
val res = fast.zipWith(slow)(_*_)
res.subscribe(
n => { println("[testWithoutBackPressure] " + n) },
e => e.printStackTrace(),
() => println("testWithoutBackPressure done")
)
}
如果由于没有背压,如何使此代码失败?
答案 0 :(得分:0)
RxJava中的默认内部缓冲区大小为128。因此,您的代码不会抛出MissingBackpressureException
。我还将您的代码重写为Java,但没有看到MissingBackpressureException
。
因此,您可以将take(100)
更改为take(1024)
,使其投放MissingBackpressureException
。