RxJava:为什么Flowable导致MissingBackpressureException?

时间:2018-09-04 12:39:07

标签: android

我尝试在FlowableOnSubscribe中发送129个事件(其中> 128个),如下所示:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    Flowable.create<Int>({
        for (index in 1 .. 129) {
            Log.d("MainActivity", "emit: $index")
            it.onNext(index)
        }
        it.onComplete()
    }, BackpressureStrategy.ERROR).subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread()).subscribe(object : Subscriber<Int> {
                override fun onComplete() {
                }

                override fun onSubscribe(s: Subscription?) {
                    s!!.request(Long.MAX_VALUE)
                    Log.d("MainActivity", "Subscribe!")
                }

                override fun onNext(t: Int) {
                    Log.d("MainActivity", "onNext: $t")
                }

                override fun onError(t: Throwable?) {
                    t!!.printStackTrace()
                }
            })
}

我在onSubscribe中请求了Long.MAX_VALUE,但是为什么这段代码总是导致MissingBackpressureExceptionrequest(Long.MAX_VALUE)无效?

0 个答案:

没有答案