我正在使用Angular5,现在我每隔5秒发出一次请求来检查任务的状况。 但我想让条件更灵活检查“如果请求有状态代码202发出请求,如果200停止发送请求”。或某人有更好的做法来做到这一点。
layoutSubviews()
编辑:这非常有用
fail2ban-client status <my-jail>
答案 0 :(得分:0)
是的,您的代码应该在.map()
中。根据{{3}},您可以在此处放置自定义条件,以决定是否为给定响应抛出错误。
RunAsyncUpdates() {
this._asyncService.getAsyncDataSource(this.model.id)
.pipe(
map(
(resp: any) => {
if (resp.status === 202) {
throw resp // This error will be picked up by retryWhen
}
return resp.body;
}),
repeatWhen(() => Observable.interval(5000)),
retryWhen(errors => errors.delay(1000).take(3)),
takeWhile(() => this._alive)
)
.subscribe(
(data: any) => {
if (!data) { return; }
console.log(data);
this._asyncService.data_stream$.next(data);
}
);