入力 html 要素があり、Observables を使用して基本的な型先行検索機能を実行しています。
コード:
@Output() keywordChange = new EventEmitter();
this.keyword$ = Observable.fromEvent(myInput, 'keyup');
this.keyword$
.map((event: any) => event.target.value)
.debounceTime(200)
.subscribe(keyword => this.keywordChange.emit(keyword));
したがって、基本的には、各キーアップの間に少なくとも 200 ミリ秒で入力されたキーワードをキャプチャしています。
「最新の検索」を表示するために、ユーザーが検索しているものをすべて Cookie に保存したいのですが、入力した値を保存する前に 3000 ミリ秒待ちたいと思います。
次のコードが機能しないことはわかっていますが、説明のために、これに似たものを実現したいと考えています。
this.keyword$
.map((event: any) => event.target.value)
.debounceTime(200)
.subscribe(keyword => this.keywordChange.emit(keyword))
.debounceTime(3000)
.subscribe(keyword => addKeyWordToLatestSearches(keyword));
これはどういうわけか、オペレーターを連鎖させて異なる debounceTimes で複数のことを行うことは可能ですか?