Observable weather
Current temperature is 25.33 ℃,humidity : 57%
네트워크 탭에 보면 다 작성되지 않은 도시명의 요청이 cancle되고 있다.
promise는 이미보낸 요청이 도중에 취소될수 없지만 옵저버블을 사용하면 도중에 취소가 가능하다.
switchMap() 함수를 사용해서 이전 요청을 취소하고 새로운 HTTP요청을 보낸다.
this.searchInput.valueChanges
.debounceTime(200)
.switchMap(city => this.getWeather(city))
.subscribe(
res => {
this.temperature =
`Current temperature is ${res['list'][0]['main'].temp} ℃,`+
`humidity : ${res['list'][0]['main'].humidity }%`;
},
댓글 없음:
댓글 쓰기