使用rxjs延迟Angular中的http响应

时间:2019-07-07 14:04:42

标签: angular rxjs

我有拦截器负责将访问令牌添加到HTTP请求标头中。在该拦截器中,我希望针对响应添加一些异步操作。为了简单起见,我将使用rxjs interval运算符异步演示:

    return next.handle(authReq).pipe(
  ((source: Observable<HttpEvent<any>>) => {
    return new Observable<HttpEvent<any>>((sub: Subscriber<HttpEvent<any>>) => {
      source.subscribe((
        response: HttpEvent<any>) => interval(1000).subscribe(() => sub.next(response)),
        err => sub.error(err),
        () => sub.complete());
    });
  })
);

我希望处理响应会出现1秒钟的延迟,但总体而言,该应用应该可以正常运行。但事实并非如此。似乎Angular试图一次又一次地发送请求。似乎是什么问题?

1 个答案:

答案 0 :(得分:1)

您正在使用间隔运算符。每隔n个时间段它将触发一个事件。如果您只想延迟,请使用delay运算符