为什么我在导入 rxjs/Rx 时只得到几个函数



我是这样导入的:

import { Observable } from 'rxjs' ;

import { Observable } from 'rxjs/Rx' ;

并声明了这样的属性

ob : Observable<any>;

当我在构造函数中写this.ob.fromarray()时,我只得到subscribe和2或3个其他函数的智能感知,而不是fromarray,这是必需的。

你可能想要像这样导入整个ReactiveXJS包:

import 'rxjs/Rx';

另一方面,Observable.fromArray(arr: Array<any>)是一个静态方法—您不能在实例上使用它。文档虽然说,这个方法已经被弃用了,现在应该使用Observable.from()

像这样使用,例如:

//our root app component
import {Component} from '@angular/core';
import {Observable} from 'rxjs/Rx';
import 'rxjs/Rx';
@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div *ngFor="let item of output">{{item}}</div>
  `,
  directives: []
})
export class App {
  ob: Observable<any>;
  someArray: Array<number> = [ 1, 2, 3, 4, 5, 6, 7, 8 ];
  output: Array<number> = [];
  constructor() {
    this.ob = Observable.from(this.someArray);
    this.ob.subscribe((data) => {
      this.output.push(data);
    });
  }
}

您需要像这样分别导入操作符:

import {Observable} from "rxjs/Observable";
import "rxjs/add/observable/interval";
import "rxjs/add/operator/take";
import "rxjs/add/operator/map";
import "rxjs/add/operator/bufferCount"

检查这个,例如

我认为fromarray()是不赞成的。使用from()代替。我希望这对你有帮助。

最新更新