我有一个搜索服务返回结果,如果用户提交两次,只有最后一次搜索应该返回结果。
我在服务中有以下代码,视图(在别处更新)具有请求所需的所有帖子正文信息。
使用 this.searchService.getResults() 从代码中的其他地方调用此方法
getResults() {
const view: SearchView = this.getCurrentSearch();
if (!view.query || view.query === '') {
return;
}
this.checkPermissions(view).subscribe(searchView => {
//do some stuff
this.cacheService
.cachedPost(this.url, searchView, () => {
return this.http.post(this.url, searchView);
})
.switchMap(res => this.pageTransform(res))
.subscribe(
// results here
);
});
}
`
从运行测试中我可以看到,如果我快速连续触发 3 次搜索,它们都会解决,而我只想要最后一个。