我們如何將 setTimeout 僅用于 1 個異步呼叫?. 我想在從資料服務呼叫 GetData 之前設定超時,但 setTimeout 只能用于 1 個異步呼叫。
任何的想法 ?謝謝。
#html代碼
<app-table-multi-sort (dataServiceEvent)="dataServiceEvent($event)"></app-table-multi-sort>
#ts 代碼
dataServiceEvent(item) {
this.table = item;
if (this.table) {
setTimeout(()=>{
this._GetData()
},500);
}
}
private GetData() {
this.isLoading = true;
this._brokerOpinionOfValueService
.getAllWAGBOVs(
this.accountId,
this.table.pageIndex 1,
this.table.pageSize,
this.searchInput.nativeElement.value,
this.table.sortParams,
this.table.sortDirs
)
.pipe(finalize(() => (this.isLoading = false)))
.subscribe({
error: (err) => this._notificationService.showError(err),
next: (res) => {
},
complete: noop,
});
}
uj5u.com熱心網友回復:
可以這樣做: -
getDataSubject: Subject = new Subject();
ngOnInit() {
this.getDataSubject.pipe(
scan((acc, curr) => acc 1, 0),
mergeMap(count => {
return iif(() => count < 2, this._GetData().pipe(delay(500)), this.getData())
})
).subscribe();
}
dataServiceEvent(item) {
this.getDataSubject.next();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/462293.html
標籤:javascript 有角度的 打字稿 异步
