我有导入可观察对象的问题。在我的项目中的作用。我的Intellij能看到一切。在我的代码中我有:

import {Observable} from 'rxjs/Observable';

在我的代码中,我这样使用它:

return Observable.of(res);

什么好主意吗?


当前回答

实际上我把导入弄乱了。在最新版本的RxJS中,我们可以像这样导入它:

import 'rxjs/add/observable/of';

其他回答

甚至Webstorm也做了这样的import {of} from 'rxjs/observable/of'; 一切都开始运转起来

RxJS 6

当升级到RxJS库版本6且不使用RxJS -compat包时,执行以下代码

import 'rxjs/add/observable/of';   
  // ...
  return Observable.of(res);

要改成什么

import { of } from 'rxjs';
  // ...
  return of(res);

实际上我把导入弄乱了。在最新版本的RxJS中,我们可以像这样导入它:

import 'rxjs/add/observable/of';

我使用的是Angular 5.2和RxJS 5.5.6

这段代码不起作用:

     import { Observable,of } from 'rxjs/Observable';

     getHeroes(): Observable<Hero[]> {
        return of(Hero[]) HEROES;

      }

下面的代码可以工作:

    import { Observable } from 'rxjs/Observable';
    import { Subscriber } from 'rxjs/Subscriber';

     getHeroes(): Observable<Hero[]> 
     {
          return Observable.create((observer: Subscriber<any>) => {
              observer.next(HEROES);
              observer.complete();
          });

      }

调用方法:

this.heroService.getHeroes()
      .subscribe(heroes => this.heroes = heroes);

我认为他们可能移动/改变了RxJS 5.5.2中的()功能

对我来说(Angular 5 & RxJS 5),自动完成导入建议:

import { Observable } from '../../../../../node_modules/rxjs/Observable';

而to应该是(所有来自,of, E.C.T的静态操作符都工作正常:

import { Observable } from 'rxjs/Observable';