我有一个数据服务,它会在其他服务需要时定期触发 http 调用。现在,此服务异步工作,因此可能会在前一个尚未完成时请求数据服务触发 http 调用。
我想知道当我需要进行 http 呼叫时如何使用 rxjs 检查是否有正在进行的呼叫
数据服务:
constructor(private http: HttpClient){}
// if this gets called while another hasn't returned, wait for it and then trigger the next http call
public request(method, url, options): Observable<any>{
return this.http.request(method, url, options);
}
服务一:
public syncA(){
setTimeout(() => {
this.dataService.request('GET', 'someUrl', someOptions).subscribe((response) => {
console.log('periodic call returns ', response});
}, 45000);
}
服务乙:
public doB(): Observable<any>{
return this.dataService.request('GET', 'someUrl', someOptions)
}
这种情况是当服务 B 调用 doB 而 syncA 已触发请求但尚未完成时。