2017-12-05 13 views
1

RXjs演算子をインポートする方法を理解できません。rxjs 5.5.2のインポート方法

この簡単なコードを見てください。私は、インポートを使用する場合

ERROR TypeError: this.store.select(...).filter(...).map(...).debounce is not a function 

同じことが起こる:

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

しかし、私は得続ける私はObservable.ofを使用するために自分のコードを変更した場合は、

import {map, filter, debounce} from 'rxjs/operators'; 

をしかし、それは動作する -

const temp_observable = Observable.of(this.store.select(state => state.accounts.pendingRequests)) 

siがありますか?これを解決するためのmplerの方法? main.tsで共通の演算子をインポートできますが、各.tsファイルに対して共通の演算子を心配する必要はありませんか?

rxjs 5.5.2 角度5.0.3角度-Reduxの6.0.1 ノード8.9.1

答えて

0

使用勧告はpipeable(以前に賃貸可能)演算子の導入以来、多少変更されています。このコードスニペットを試してください -

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

希望します。

+1

彼らは今パイプ可能です:) https://github.com/ReactiveX/rxjs/blob/master/doc/lettable-operators.md – yurzui

+0

私は、彼らが名前を変更したことを知っていませんでした、ありがとう。 –