【问题标题】:What is the Difference between new Observable and of or from?新的 Observable 和 of 或 from 之间有什么区别?
【发布时间】:2021-03-18 23:54:27
【问题描述】:

new Observable 和从 of 或 from 创建的 observable 有什么区别?

of([1, 2, 3]).subscribe(x => console.log(x));

from([1, 2, 3]).subscribe(x => console.log(x));

new Observable()

以上两种创建可观察对象的主要区别是什么?

我已经读过这篇文章,但还没有说服力! what is the difference between "new Observable()" and "of()" in RxJs

我不是在问 of 和 from 之间的区别。我在询问 new Observable() 中的任何一个(或来自)之间的区别

【问题讨论】:

  • offrom 返回两个非常具体的 observables。这一切都在rxjs-dev.firebaseapp.com/guide/observable 中进行了解释。我投了反对票,因为这个问题在官方指南第一页的第一段中得到了回答。
  • 你的意思是用复制品很有说服力?请详细说明您的问题与重复问题之间的区别。
  • 我不是在问 of 和 from 之间的区别。我在问 new Observable() 中的任何一个(或来自)之间的区别
  • 请仔细阅读。我的问题简洁明了。没有必要详细说明,因为没有什么可详细说明的。
  • 是的,我明白了。答案是offrom 返回两个非常具体的可观察对象,而new Observable 创建一个自定义可观察对象。这是链接问题的完全副本,并在官方指南的第一页进行了描述。如果您不想阅读副本或指南,为什么要阅读第三版作为答案?

标签: rxjs


【解决方案1】:

本质上,可观察的创建函数offrom 和其他函数只是创建具有特定行为的new Observable()

所以,new Observable() 和创建者函数之间的唯一区别是实际行为。

例如,of() 函数如下所示(简化):

export function of<T>(...array: Array<T>): Observable<T> {
  return new Observable<T>(subscriber => {
    for (let i = 0; i < array.length && !subscriber.closed; i++) {
      subscriber.next(array[i]);
    }
    subscriber.complete();
  });
}

您可以看到new Observable()of() 函数中被调用。

【讨论】:

    【解决方案2】:

    new Observable and oforfromis thatofandfromare functions that utilizenew Observableto create new observable with a fixed observer whilenew Observablecan be called with any possible observer. Withnew Observableyou can create any observable, even the observables created withofandfrom`的区别。 >

    这就像在问数学函数和多项式之间的区别。

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 2019-02-25
      • 2017-03-13
      • 2021-06-16
      • 1970-01-01
      • 2023-03-08
      • 2019-05-14
      • 2016-09-18
      • 1970-01-01
      相关资源
      最近更新 更多