有时候点列表但是由于查询问题,后端返回数据的速度很慢,导致回来的顺序错乱,后端解决不了,前端来

在jq年代 像标志位 防抖 节流等

在angular里使用了rxjs

//错误示范

1  getIntelligenceById(id, page, size, search?) {
2         this.tableLoading=true;
3         this.knowledgeService.findIntelligence(id, page, size,search).pipe(debounceTime(1000)).subscribe(data => {
4             this.tableData=[];
5 })
6 }

 

// 正确 开始首先

searchText$ = new Subject<string>();

//其次 点击事件里边
this.searchText$.next(id);
//再
this.searchText$.pipe(debounceTime(1000)).subscribe(data=>{
this.getIntelligenceById(data,this.page,this.size,this.searchListWord);
})
//最后不要忘记取消订阅
this.searchText$.unsubscribe();
 
posted on 2019-09-10 17:16  斧子兔  阅读(365)  评论(0编辑  收藏  举报