Observable.create()和Observable.fromCallable()之间的区别

11
假设我们正在使用 .create()SharedPrefs 中获取一个通用的 Object:
return Observable.create(subscriber -> {
      String json = sharedPreferences.getString(key, "");
      T myClass = gson.fromJson(json, generic);
      subscriber.onNext(myClass);
      subscriber.onComplete();
    });

使用 .fromCallable()

return Observable.fromCallable(() -> {
      String json = sharedPreferences.getString(key, "");
      return gson.fromJson(json, generic);
    });

如果我们在从Observable.create()第一次发射后立即调用onComplete()和使用Observable.fromCallable()有什么区别?如果有,有哪些优缺点

1个回答

16

Observable.create 允许您发出多个项,而 fromCallable 只发出单个项。

应该使用后者,因为它更能表达只有一个元素序列的意图,并且开销稍低。

缺点是您无法使用异步的单元素源,而 create 允许您延迟调用 onNext 到以后的时间点。


你能否给出更具体的例子来解释并帮助理解吗? - Sri Krishna
2
请更加主动地查看可用的RxJava文档和wiki - akarnokd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接