RxJava-仅与来自
当使用RxJava-仅与来自,java,rx-java,Java,Rx Java,当使用Observable时,我得到了相同的输出。在以下情况下,仅使用vsObservable.from: public void myfunc() { //swap out just for from here and i get the same results,why ? Observable.just(1,2,3).subscribe(new Subscriber<Integer>() { @Override
Observable时,我得到了相同的输出。在以下情况下,仅使用vsObservable.from
:
public void myfunc() {
//swap out just for from here and i get the same results,why ?
Observable.just(1,2,3).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
Log.d("","all done. oncompleted called");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Integer integer) {
Log.d("","here is my integer:"+integer.intValue());
}
});
}
我假设这是明显的区别,对吗?当你传递一个Iterable
(例如列表)时,当你观察每个人的行为时,区别应该更清楚:
可观察。仅(someList)
将给你1次发射-a列表
可观察。从(someList)
将为您提供N个排放-列表中的每个项目
只将多个值传递给是一种方便的功能;以下功能相同:
Observable.just(1, 2, 3);
Observable.from(1, 2, 3);
just()
和from()之间的区别:
尽管just()
和from()
似乎在做相同的工作,但排放量不同
just()<代码>可观察。仅(新整数[]{1,2,3})
通过观察者回调发出一个发射,作为onNext(整数[]{integers)
fromArray()
–产生N个辐射<代码>可观察。fromArray(新整数[]{1,2,3})
通过Observer callback作为onNext(Integer Integer)
从
发出三次发射,主要与数据结构(数组和iterable)和期货一起工作,因此获得的可观察的
将从这些数据结构或期货发出单个项目
只是
将所有内容都视为项,而不管它是数组项还是整数项。关于just
的混淆是由于有一些just
变体可以接受多达10个参数
因此,事实上,您可能会解释所有这些just
变量,就像它们分别发出的一样,“just”一项,或“just”两项,或“just”三项等等…inRxJavajust()运算符获取参数列表并将这些项转换为可观察项。它需要一到十个参数(但官方文件说是一到九个,可能是特定语言)
与just不同,From()使用Iterable从一组项中创建一个可观察项,这意味着每个项一次发出一个。我们可以在just()中最多传递10个参数,而fromArray具有列表类型
而在内部调用fromArray()
在下面的RxJava代码中只检查4个参数
public static <T> Observable<T> just(T item1, T item2, T item3, T item4) {
ObjectHelper.requireNonNull(item1, "The first item is null");
ObjectHelper.requireNonNull(item2, "The second item is null");
ObjectHelper.requireNonNull(item3, "The third item is null");
ObjectHelper.requireNonNull(item4, "The fourth item is null");
return fromArray(item1, item2, item3, item4);
}
publicstaticobservable(T项1、T项2、T项3、T项4){
requirennull(item1,“第一项为空”);
requirennull(item2,“第二项为空”);
requirennull(item3,“第三项为空”);
ObjectHelper.requirennull(item4,“第四项为空”);
从数组返回(项1、项2、项3、项4);
}
两者都返回相同的可观察对象 在2.1.0版中,没有from()。它替换为fromIterable()和其他一些,但答案是正确的。谢谢。这里是可观察的。只是(1,2,3,4,5,6,7,8,9,10)。subscribeOn(Schedulers.io())只接受10个参数并给出10个发射。为什么没有人关心这个案子?
public static <T> Observable<T> just(T item1, T item2, T item3, T item4) {
ObjectHelper.requireNonNull(item1, "The first item is null");
ObjectHelper.requireNonNull(item2, "The second item is null");
ObjectHelper.requireNonNull(item3, "The third item is null");
ObjectHelper.requireNonNull(item4, "The fourth item is null");
return fromArray(item1, item2, item3, item4);
}