间隔中的 HTTP 请求不起作用 Angular 10
HTTP request in an interval doesn't work Angular 10
我正在研究 Angular 10,它具有通过每 5 秒向服务器发送一次请求来检查连接的功能。
问题是请求并没有真正发送出去,它只是保持每 5 秒 console.warn
。
只有response响应为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 请求被浏览器缓存了。
为了刷新请求。只需在每个请求的 url 之后添加 ?x
,其中 x 是某个唯一数字(例如:http://localhost:3000/api/testconnection?0
)。
我正在研究 Angular 10,它具有通过每 5 秒向服务器发送一次请求来检查连接的功能。
问题是请求并没有真正发送出去,它只是保持每 5 秒 console.warn
。
只有response响应为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 请求被浏览器缓存了。
为了刷新请求。只需在每个请求的 url 之后添加 ?x
,其中 x 是某个唯一数字(例如:http://localhost:3000/api/testconnection?0
)。