间隔中的 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)。