如何调试RxJava-可观察的方法调用/链

・1 分钟阅读

当你需要调试RxJava Observable方法调用链时,可以使用doOnNext方法记录当前值或使用println将它们打印到STDOUT或STDERR。下面是RxJava开发人员的一个例子,其中调试输出使用AndroidLog.d方法记录:

Observable<Boolean> isFormValidObservable = ValidationUtils.and(
 isCreditCardNumberValid
 .doOnNext(value -> Log.d(
 TAG,
"isCreditCardNumberValid:" + value
 ),
 isCheckSumValid,
 isCvcCodeValid
);

下面是来自此grokkingandroid.com帖子的第二个例子,它显示了一个可观察链中的几个doOnNext调用:

Observable someObservable = Observable
 .from(Arrays.asList(new Integer[]{2, 3, 5, 7, 11}))
 .doOnNext(System.out::println)
 .filter(prime -> prime % 2 != 0)
 .doOnNext(System.out::println)
 .count()
 .doOnNext(System.out::println)
 .map(number -> String.format("Contains %d elements", number));

doOnNext很酷,因为它允许你执行调试/日志记录,而不会破坏可观察到的方法调用链。

Xn_warm profile image