angular - 间隔中的HTTP请求不起作用Angular 10
问题描述
我正在研究 Angular 10,它具有通过每 5 秒向服务器发送请求来检查连接性的功能。
问题是请求并没有真正发送出去,它只是console.warn
每 5 秒发送一次。
该问题仅在响应以 响应时出现status 200
,如果以 响应status 404
,则有效。一旦它以 响应status 200
,它不会在每 5 秒内发送任何 HTTP 请求,而只是打印出之前的 http 请求数据。
PS:我正在本地服务器上进行测试
这是我的代码
checkConnection(): Subscription {
return interval(2000)
.subscribe(
x => {
this.httpService.testConnectivity().subscribe(
data => console.warn(`Success: ${data}`),
error => console.warn(`Error: ${error}`),
() => console.warn("Completed")
)
}
);
}
功能testConnectivity
如下
testConnectivity(): Observable<any> {
if (isPlatformBrowser(this.platformId)) {
return this.http
.get(`${this.url}/api/testconnection`, { observe: 'response' })
.pipe(
catchError(this.handleError)
);
}
}
解决方案
我发现了问题。问题是浏览器缓存了 HTTP 请求。
为了发出刷新请求。只需在每个请求?x
的 url(例如:)之后添加 x 是某个唯一数字。http://localhost:3000/api/testconnection?0
推荐阅读
- reactjs - 当用户离开当前屏幕时,componentWillUnmount 是自动保存用户输入的好地方吗?
- typescript - 在 Typescript 中,如何检查对象是否已被释放?
- python - 如何在不选择 Gtk.treeview 的情况下突出显示一行?
- c# - 我们可以使用 Selenium/Appium 在网页/移动应用程序上验证文本对齐吗
- java - java.util.NoSuchElementException:找不到行
- npm - 检查 NPM package.json 和 package-lock.json 是否兼容
- c++ - C ++如何删除输入末尾的空行?
- html - 一些href链接不可点击
- postgresql - 无法运行脚本在 docker 中创建多个数据库
- javascript - 如何在 Flutter Web 中隐藏 firebaseConfig 键