我在许多Rxjava教程中看到过,不鼓励使用var evens = () => {
return numbers.filter(n => n % 2 == 0);
}
方法来创建Observable。相反,最好使用Observable.create
或Observable.fromCallable
来发出单个对象。使用Observable.just
作为最后一个选项。这是为什么?其中一个问题是处理背压。使用Observable.create
还有其他风险吗?任何人都可以用一些例子来解释它以便更好地理解吗?我没有从任何教程中得到关于这个问题的正确解释,这就是我在这里问的原因。提前致谢
答案 0 :(得分:0)
不是鼓励,是关于create
运营商是否需要调整。
create
运算符为您提供了实施onNext
或onError
@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);
}
如果您不需要,just
或fromCallable
就可以了。
您可以在此处查看create operator https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/creating/ObservableCreate.java
的示例