我想过滤一个可观察的,但我得到了意想不到的结果。
我使用以下导入语句:
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));
有没有人看到语法错误和/或我遗漏的东西?谢谢!
答案 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));