RxUtils.java 675 字节
Newer Older
A
Allen Wang 已提交
1 2 3
package com.netflix.utils;

import rx.Observable;
4
import rx.functions.Func1;
A
Allen Wang 已提交
5 6 7 8 9 10 11 12

public class RxUtils {

    public static <T> T getSingleValueWithRealErrorCause(Observable<T> observable) throws Exception {
        return observable.onErrorResumeNext(new Func1<Throwable, Observable<T>>(){

            @Override
            public Observable<T> call(Throwable t1) {
13
                if ((t1 instanceof RuntimeException) && t1.getCause() != null) {
A
Allen Wang 已提交
14 15 16 17 18 19 20 21
                    return Observable.error(t1.getCause());
                } else {
                    return Observable.error(t1);
                }
            }            
        }).toBlockingObservable().single();
    }
}