Angular2 Observable Filter

时间:2016-07-15 19:49:26

标签: filter angular observable rxjs5

我想过滤一个可观察的,但我得到了意想不到的结果。

我使用以下导入语句:

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';

此示例不返回任何内容:

Observable.of([0, 1, 2, 3, 4, 5])
.filter((x: any) => x % 2 === 0)
.subscribe(data => console.log(data));

此示例返回整个结果集[0,1,2,3,4,5]:

Observable.of([0, 1, 2, 3, 4, 5])
.filter((x: number[], idx) => x[idx] % 2 === 0)
.subscribe(data => console.log(data));

有没有人看到语法错误和/或我遗漏的东西?谢谢!

1 个答案:

答案 0 :(得分:2)

如果要将值传递为iterable(在当前情况下为数组),则需要使用from

import 'rxjs/add/observable/from';

Observable.from([0, 1, 2, 3, 4, 5])
.filter((x: any) => x % 2 === 0)
.subscribe(data => console.log(data));

或者如果你想坚持使用of传递值作为参数

Observable.of(0, 1, 2, 3, 4, 5)
.filter((x: any) => x % 2 === 0)
.subscribe(data => console.log(data));