유닉스 환경에서 코드를 실행할 때 매우 귀찮은 오류가 발생합니다. 내가 ng serve
을 통해 로컬 코드를 실행할 때이 잘 작동하지만 내 서버에 코드를 배포 할 때이 오류가 모든 프로그램 실행을 중단 :Observable .catch가 함수가 아닙니다.
내가 rxjs을 가져와야합니다
ERROR TypeError: this.http.get(...).catch is not a function
Google 결과 상태 이름 공간은 rxjs/Rx 번들을 통하지 않고 그들의 위치에서 곧바로 나옵니다. 그러나이 오류는 무시됩니다. 다른 결과는 rxjs 연산자를 가져 오지 못했을 수도 있지만 필자의 경우에는 분명히 포함되어 있습니다.
DevTools를 사용하여 포함 된 소스 맵을 검사하기도하고 연산자가 브라우저에 포함됩니다.
아무도 왜이 오류가 발생하는지 말해 줄 수 있습니까? rxjs를 사용하고 있습니다.^5.5.2
이것은 내 코드입니다. ,
this.myService.all().subscribe(
result => {
this.isLoading = false;
if (result) {
this.clients = result;
}
},
error => this.isLoading = false
);
이 같은 구독 두 콜백 함수를 일으켜과 동일 : @ 아래 Jota.Toledo의 의견을 바탕으로
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
@Injectable()
export class MyService {
constructor(private http: HttpClient) {}
all(): Observable<any> {
return this.http.get<any>('url')
.catch(err => this.handleError(err));
}
handleError(error) {
return Observable.throw(error);
}
}
편집 , 나는이 방법을 사용하여 코드를 제공합니다 "연산자가 추가되기 전에 어딘가에 catch 메서드를 사용합니까?"
어떤 rxjs 버전을 사용하고 있습니까? – Aravind
질문 편집 @Aravind –
이 코드 조각에서 문제가 발생했는지 확인 하시겠습니까? 연산자를 가져 오기 전에 괜찮습니다. 연산자를 추가하기 전에 어딘가에 catch 메서드를 사용하고 있습니다. –