角度周期性请求

时间:2018-03-12 10:29:48

标签: angular rxjs angular5

我正在使用Angular5,现在我每隔5秒发出一次请求来检查任务的状况。 但我想让条件更灵活检查“如果请求有状态代码202发出请求,如果200停止发送请求”。或某人有更好的做法来做到这一点。

layoutSubviews()

编辑:这非常有用

fail2ban-client status <my-jail>

1 个答案:

答案 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);
    }
  );