如何使用rxjs 5.5.2导入

时间:2017-12-05 11:05:51

标签: angular redux rxjs

我不明白如何导入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

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))
    );
}

希望这有帮助。