核心方法onErrorReturn
//任务1
Observable<Object> integerObservable1 = Observable.create(emitter -> {
emitter.onError(new Throwable());
//失败默认值处理
}).onErrorReturn((Function<Throwable, Integer>) throwable -> 8).subscribeOn(Schedulers.io());
//任务2
Observable<Object> observable2 = Observable.create(emitter -> {
emitter.onNext("phone number :");
emitter.onComplete();
}).subscribeOn(Schedulers.io());
//3组合打包zip
Disposable subscribe = Observable.zip(integerObservable1, observable2, (integer, s) -> {
Log.d(TAG, "thread1..." + Thread.currentThread().getName());
return new StringBuffer().append(s).append(integer).toString();
}
).observeOn(AndroidSchedulers.mainThread()).subscribe(s -> {
Log.d(TAG, "thread2..." + Thread.currentThread().getName());
Toast.makeText(mContext, s, Toast.LENGTH_SHORT).show();
});
网友评论