>source

이 솔루션 은 내 코드에서 작동합니다. 이것은 간격없이 작동하는 원래 코드입니다. 그러나 불행히도 요청이 너무 많습니다.

import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
constructor(private http: HttpClient) {}
  ngOnInit() {
  }
  getWeather() {
    this.response = this.http.get<Weather>(this.serviceUrl );
    this.response.subscribe(
      results => {
        this.weathers = results.properties.periods;
        console.log('this.weather ====> ', this.weathers);
      });
    }
}

그러나 간격을 추가하면 오류가 발생합니다 :

ERROR TypeError: Cannot read property 'interval' of undefined

import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
constructor(private http: HttpClient) {}
  ngOnInit() {
  }
  getWeather() {
    this.response = this.http.get<Weather>(this.serviceUrl );
    this.response.Observable.interval(60000).subscribe(
      results => {
        this.weathers = results.properties.periods;
        console.log('this.weather ====> ', this.weathers);
      });
    }
}

이 오류를 발생시키지 않는 다음 코드를 사용했지만 간격이 영향을 미치지 않는 것처럼 여전히 무한 응답으로 들어갑니다.

import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { interval } from 'rxjs';
import { take } from 'rxjs/operators';
import { Subject } from 'rxjs';
takeFourNumbers = interval(50000).pipe(take(4));
constructor(private http: HttpClient) {}
  ngOnInit() {
  }
  getWeather() {
    this.response = this.http.get<Weather>(this.serviceUrl );
    this.response.subscribe(
      results => {
        this.weathers = results.properties.periods;
        console.log('this.weather ====> ', this.weathers);
        this.takeFourNumbers.subscribe(x => console.log('Next: ', x));
      });
    }
}

이전 솔루션이 더 이상 작동하지 않는 Angular 6+에서 최근에 변경된 사항이 있습니까? 저는 Angular를 처음 사용합니다.

  • 이전 ios - 스위프트 내비게이션 컨트롤러 바 뒤로 버튼
  • 다음 vue.js - Vue JS 2 클릭 한 번에 테이블 td 정렬