gpt4 book ai didi

java - RxJava - Just vs From

转载 作者:IT老高 更新时间:2023-10-28 21:02:01 25 4
gpt4 key购买 nike

在以下情况下使用 Observable.justObservable.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());
}
});

}

我认为 just 应该只发出一个项目,而 from 应该发出某种列表中的项目。有什么不同 ?我还注意到 justfrom 只接受有限数量的参数。所以 Observable.just(1,2,3,4,5,6,7,8,-1,-2) 没问题,但是 Observable.just(1,2,3, 4,5,6,7,8,-1,-2,-3) 失败。 from 也是如此,我必须将它包装在一个列表或数组中。我只是好奇为什么他们不能定义无限的参数。

更新:我进行了实验,发现 just 不采用数组结构,它只采用参数。 from 接受一个集合。所以以下适用于 from 但不适用于 just:

 public Observable myfunc() {
Integer[] myints = {1,2,3,4,5,6,7,8,-1,-2,9,10,11,12,13,14,15};
return Observable.just(myints).flatMap(new Func1<Integer, Observable<Boolean>>() {
@Override
public Observable<Boolean> call(final Integer integer) {
return Observable.create(new Observable.OnSubscribe<Boolean>() {
@Override
public void call(Subscriber<? super Boolean> subscriber) {
if(integer.intValue()>2){
subscriber.onNext(integer.intValue()>2);

}
}
});
}
});

}

我假设这是明显的区别,对吗?

最佳答案

当你通过一个Iterable(例如一个List)查看每个的行为时,区别应该会更清楚:

Observable.just(someList) 会给你 1 个发射 - List

Observable.from(someList) 会给你 N 个排放 - 列表中的每个项目。

将多个值传递给 just 的能力是一项便利功能;以下功能相同:

Observable.just(1, 2, 3);
Observable.from(1, 2, 3);

关于java - RxJava - Just vs From,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com