业务需求:
搜索框中每输入一个字符就向后台发起请求,可是这些请求返回速度不一定,导致结果不准确且有很多冗余的请求。
解决方法:
当rxjs中的subject发出邮件时,switchmap取消未完成的请求。
// 1 创建subject
private keyupSubject$: Subject<void> = new Subject();
constructor() {
// 2 创建可观察的事件流
this.keyupSubject$
.pipe(switchMap(() => rxnsObservable))
.subscribe((results) => // handling)
}
// 3 单击事件
onKeyup(keyword) {
this.keyupSubject$.next(keyword);
}