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

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

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

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

解决方法

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

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

Observable.create(observer => {
     const timeoutId = setTimeout(() => {
       observer.next(0);
       observer.complete();
     },500);

     return () => clearTimeout(timeoutId);
   });

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

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

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

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

// Don't quote me on the import part
import 'rxjs/add/observable/of';

Observable.of(1,2,3,4).subscribe();

猜你在找的JavaScript相关文章