当前位置: 首页 > 知识库问答 >
问题:

可观测值之间的差异。create()和Observable。fromCallable()

艾泰
2023-03-14

假设我们正在使用SharedPrefs获取一个通用的对象。create()

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);
    });

如果我们在第一次emmit之后立即调用onComplete(),从observative中调用,会有什么区别吗。create()并使用可观察的。fromCallable()?如果是这样的话,利弊是什么?

共有1个答案

巫马承德
2023-03-14

<代码>可见。创建让您发射多个项目,而来自Callable的仅发射单个项目。

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

缺点是您不能使用异步单个元素源,而create让您将对onNext的调用延迟到稍后的时间点。

 类似资料:
  • Java8流与RxJava可观测数据类似吗? Java 8流定义:

  • 很好的一天! 我读得越多,就越感到困惑。外观和别名之间有什么区别? 我有这个类: /应用程序/库/项目/数据。php 和相应的外观,所以我可以只使用PJD进行访问::。 根据周围的一些网页: ... Laravel Facades是代理。它们环绕并调用代码底层真实实现上的函数。此外,在Laravel应用程序的上下文中,通过将这些Facades分配给别名来访问它们。依赖注入容器的这种使用允许您通过简

  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 在AngularJS中可观察到的和promise之间的区别?在angular 2和angular 4版本中,promise和观测值有哪些变化?解释这种情况的例子会有很大帮助。

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?

  • 本文向大家介绍成本差异和进度差异之间的差异,包括了成本差异和进度差异之间的差异的使用技巧和注意事项,需要的朋友参考一下 对于任何应用程序或专门用于任何项目,最关注的因素之一是在开发前和开发后阶段的预算管理和时间管理。因此,要评估任何项目的这两个主要因素,有很多方法,其中成本差异和进度差异是两个重要且主要的方法。 顾名思义,“成本差异”基于项目开发中花费的成本,而“进度差异”则基于相同开发中花费的时