为什么你不应该使用Observable.create

时间:2018-01-06 20:07:00

标签: rx-java rx-java2

我在许多Rxjava教程中看到过,不鼓励使用var evens = () => { return numbers.filter(n => n % 2 == 0); } 方法来创建Observable。相反,最好使用Observable.createObservable.fromCallable来发出单个对象。使用Observable.just作为最后一个选项。这是为什么?其中一个问题是处理背压。使用Observable.create还有其他风险吗?任何人都可以用一些例子来解释它以便更好地理解吗?我没有从任何教程中得到关于这个问题的正确解释,这就是我在这里问的原因。提前致谢

1 个答案:

答案 0 :(得分:0)

不是鼓励,是关于create运营商是否需要调整。 create运算符为您提供了实施onNextonError

的选项
   @Test
    public void testCreateObservableNext() {
        Observable.create(observer -> {
            observer.onNext("Injected value on Next");
            observer.onError(new NullPointerException("This is the final exception"));

    }).map(s -> ((String) s).toUpperCase())
            .subscribe(System.out::println, System.out::println);
}

如果您不需要,justfromCallable就可以了。

您可以在此处查看create operator https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/creating/ObservableCreate.java

的示例