【发布时间】:2018-08-15 19:09:01
【问题描述】:
private pollSubscriptions: Subscription;
private defaultPollTime: number = 2000;
constructor(
private http: HttpClient,
) {
this.pollSubscriptions = new Subscription();
}
pollRequest<T>(
url: string,
updateStatus: any,
pollWhileCondition: Function,
onPollingSuccessCallback?: Function,
timer = this.defaultPollTime
) {
this.pollSubscriptions.add(timer(0, 2000).pipe(
switchMap(() => this.http.get<T>(url).pipe(
catchError((error: any) => empty()))),
tap(updateStatus),
takeWhile(data => pollWhileCondition(data)))
.subscribe());
}
ngOnDestroy(): void {
this.pollSubscriptions.unsubscribe();
}
我可以同时轮询多个网址。但是如何增强当前的功能以满足以下要求:
- 如果被轮询的 url 失败,那么我们如何在 3(n) 秒的延迟下重试轮询 url 3 次?
- 我们如何在被轮询的 url 上添加不同的运算符?
仍然没有解决方案
提前致谢
【问题讨论】:
-
仍然没有解决方案谢谢
标签: javascript angular rxjs reactive-programming rxjs6