angular - 使用rxjs以角度延迟http响应
问题描述
我有拦截器负责将访问令牌添加到 HTTP 请求标头。在那个拦截器中,我希望添加一些关于响应的异步操作。为了简单起见,我将使用 rxjs 间隔运算符异步演示:
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 似乎一次又一次地尝试发送请求。似乎是什么问题?
解决方案
您正在使用区间运算符。它会在每 n 个时间段后触发一个事件。如果您只想延迟,请使用延迟运算符
推荐阅读
- python-3.x - 数组解释中的最大连续和
- c - 如何在 C 中屏蔽位
- java - .jar 文件和 .java 文件之间的区别
- python - 如果列表元素包含 az 字符,Python 用 Nan 替换它们
- bash - 如何在 bash 的完整输出中使用颜色?
- r - R代码中的无效下标类型“列表”错误
- html - CSS 效果在反应应用程序中不起作用
- docker - 使用 Docker for windows 将 windows 驱动器卷挂载到 Linux 容器中
- reactjs - 将我的 React Web App 发布到 Apache 生产服务器后,路由不起作用
- java - 如何在对象数组列表中找到对象的一个元素?