Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rx java 为什么不应该使用Observable.create_Rx Java_Rx Java2 - Fatal编程技术网

Rx java 为什么不应该使用Observable.create

Rx java 为什么不应该使用Observable.create,rx-java,rx-java2,Rx Java,Rx Java2,我在许多Rxjava教程中看到,不鼓励使用observatable.create方法来创建一个observatable。相反,最好使用Observable.fromCallable或Observable.just来发射单个对象。使用可观察。创建作为最后一个选项。为什么呢?其中一个问题是背压的处理。使用create是否存在任何其他风险?有人能用一些例子来解释一下吗?对于这个问题,我没有从任何教程中得到正确的解释,这就是我在这里提问的原因。提前感谢不是鼓励,而是如果创建操作员调整您需要的内容。 cr

我在许多Rxjava教程中看到,不鼓励使用
observatable.create
方法来创建一个observatable。相反,最好使用
Observable.fromCallable
Observable.just
来发射单个对象。使用
可观察。创建
作为最后一个选项。为什么呢?其中一个问题是背压的处理。使用
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操作符的示例

你读了原始注释吗?我读了,但没有正确理解。不幸的是,指南、博客、StackOverflow答案和仅仅是典型的用户行为仍然会导致此创建方法和大量混乱、不可阻挡的序列以及缺少BackPressureException。因此,从1.2.7开始,create()方法现在已被弃用,这意味着从最新的RxJava 2.X开始,我们不再建议使用它了?如果是这样,另一种选择是,将被动世界与回调样式世界连接起来。双参数
create
可用于此类桥接,因为它提供了保护措施。然而,许多人使用旧的create来实现源代码,例如
just
from(Iterable)
。我仍然使用
create
从现有的异步代码创建一个可观察的源代码。我相信这是唯一的办法。不是吗?