首页 > 解决方案 > 间隔中的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)
        );
    }
  }

标签: angulartypescriptangular10

解决方案


我发现了问题。问题是浏览器缓存了 HTTP 请求。

为了发出刷新请求。只需在每个请求?x的 url(例如:)之后添加 x 是某个唯一数字。http://localhost:3000/api/testconnection?0


推荐阅读