有时候点列表但是由于查询问题,后端返回数据的速度很慢,导致回来的顺序错乱,后端解决不了,前端来
在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();