我有一个Flowable
流,它将多个流连接在一起:
Flowable
.empty()
.concatWith(longOperationA())
.concatWith(longOperationB())
.onErrorResumeNext(throwable -> {
// some cleanup tasks
return Flowable.error(throwable);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mySubscriber);
longOperationA()
和longOperationB()
都发射物品。
关于发生什么情况(发生错误或mySubscriber
),我想让我的信息流以不同的方式进行操作。错误情况已涵盖
通过onErrorResumeNext()
回调,但不是mySubscriber
时
被处置。
当订户被处置后,如何更改我的信息流以执行其他任务?
要对此提供更多背景信息,我尝试了doOnCancel()
:
Flowable
.concatWith(longOperationA())
.concatWith(longOperationB())
.doOnCancel(() -> {
// some cleanup tasks
})
.onErrorResumeNext(throwable -> { ...
但是,doOnCancel()
不仅会在mySubscription
被处置时被调用,
而且还应在longOperationA()
(和分别为`longOperationB())完成时进行。
还有其他方法可以让我的信息流对dispose
事件做出反应吗?
答案 0 :(得分:1)
您可以使用A[np.argwhere([A[:,13] == 0])[:,1],7].mean()
: