javascript – RxJS:Observable.create()与Observable.from()

前端之家收集整理的这篇文章主要介绍了javascript – RxJS:Observable.create()与Observable.from()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这两者有什么区别?
  1. return Observable.create(function(observer) {
  2. if (array)
  3. observer.next([]);
  4. else
  5. observer.next(null);
  6. observer.complete();
  7. });

  1. return Observable.from( array ? [] : null );

我认为它可能是相同的,但不起作用.

解决方法

create(…)是用于创建Observable的通用Observable工厂方法,您将在其中明确指示如何将值传递给订阅服务器

例如,如果你要创建一个基于Observable的计时器(不要它已经作为Observable.timer存在),你可以这样做:

  1. Observable.create(observer => {
  2. const timeoutId = setTimeout(() => {
  3. observer.next(0);
  4. observer.complete();
  5. },500);
  6.  
  7. return () => clearTimeout(timeoutId);
  8. });

from(…)就是我所说的一致性运算符,因为它试图将传入的数据类型强制转换为Observable(使其符合).这意味着它将接受各种类型并将它们转换为Observable.这些类型包括

>阵列
>承诺
>发电机
>可观察的东西

你也可以找到特定的转换器,例如fromArray和fromPromise,这些转换器专门转换这些类型,但更多的是来自这些方法的瑞士军刀

如果你只需要一个值,你应该使用Observable.of(文档似乎已经过时,只是/ return被重命名为RxJS 5,我认为它们不再是别名).

  1. // Don't quote me on the import part
  2. import 'rxjs/add/observable/of';
  3.  
  4. Observable.of(1,2,3,4).subscribe();

猜你在找的JavaScript相关文章