为什么我在导入时只得到几个函数 rxjs/Rx
Why am I only getting a few functions when I'm importing rxjs/Rx
我是这样导入的:
import { Observable } from 'rxjs' ;
或
import { Observable } from 'rxjs/Rx' ;
并像这样声明一个 属性
ob : Observable<any>;
当我在构造函数中编写 this.ob.fromarray()
时,我只会获得 subscribe
和 2 或 3 个其他函数的 IntelliSense,而不是必需的 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() 。
希望对您有所帮助。
我是这样导入的:
import { Observable } from 'rxjs' ;
或
import { Observable } from 'rxjs/Rx' ;
并像这样声明一个 属性
ob : Observable<any>;
当我在构造函数中编写 this.ob.fromarray()
时,我只会获得 subscribe
和 2 或 3 个其他函数的 IntelliSense,而不是必需的 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() 。 希望对您有所帮助。