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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...