私のアプリケーションには無限のスクロールセクションがあります。これを達成するために、私はthis componentを使用してスクロールイベントを処理します。スクロールがdivの下部に到達すると、私は関数を呼び出してより多くのデータを取得しています。ここまでは順調ですね。角2 - RxJSスイッチマップの問題
この機能をより効率的にするには、データが正しく処理されることを確認するだけでなく、呼び出しが行われるまで数秒待つことを試みています。これを行うために、私はAngular website that showcases a wikipedia searchに示されている例を見てきました。
私が記事に示されているものと同様のセットアップを持って、私の問題は、私はswitchMap()
を呼び出すときに、私は次のエラーを取得していますということです。
Type 'void' is not assignable to type 'ObservableInput<{}>'
:
この上記のコードではprivate scrollEndActive: Subject<boolean> = new Subject<boolean>();
ngOnInit() {
...
this.scrollEndActive
.debounceTime(1000)
.distinctUntilChanged()
.switchMap(data => {
// ... get data from server
})
}
...
// event to trigger call to server
scrollEnd() {
this.scrollEndActive.next(true);
}
は私が取得していますものです私が研究したことは、Observable(Type 'void' is not assignable to type 'ObservableInput<{}>')を返さなければならないという事実に関連する問題であるように思えます。しかし私の場合は、何が問題なのか分かりません。
は、私が働いている:
- アンギュラ4.0.1
- 活字体2.2.2
- RxJS 5.2.0デフォルトで
あなたは 'Observable'を返さなければなりません。何が問題なのですか? – yurzui
私はこの時点まで何を返す必要があるのか分かりません...トリガーされたときに 'Subject'に作用すると思われるコードはすべて、' Observable ' –
'.switchMap(data => { return Observable.of(null) })'インポート'を忘れないでください。rxjs/add/observable/of ';'しかし、それは単なるスタブです。私はあなたが実際に観察したいと思うと仮定します – yurzui