我不明白如何导入RXjs运营商。
看看这个简单的代码。
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/debounce';
ngOnInit() {
const temp_observable = this.store.select(state => state.accounts.pendingRequests)
.filter(x => !!x)
.map(x => x +1 )
.debounce(x => Observable.timer(300));
}
但我一直在接受:
ERROR TypeError: this.store.select(...).filter(...).map(...).debounce is not a function
使用导入时会发生同样的事情:
import {map, filter, debounce} from 'rxjs/operators';
但是,如果我更改我的代码以使用Observable.of,它可以工作 -
const temp_observable = Observable.of(this.store.select(state => state.accounts.pendingRequests))
有没有更简单的方法来解决这个问题? 我可以在main.ts中导入公共运算符而不用担心每个.ts文件吗?
rxjs 5.5.2 角5.0.3 angular-redux 6.0.1 节点8.9.1
答案 0 :(得分:3)
自从引入可管道(以前可用的)运算符以来,使用建议已有所改变。试试这段代码 -
import { debounce, filter, map } from 'rxjs/operators';
ngOnInit() {
const temp_observable = this
.store.select(state => state.accounts.pendingRequests)
.pipe(
filter(x => !!x),
map(x => x +1 ),
debounce(x => Observable.timer(300))
);
}
希望这有帮助。