angular 사용 차단기 통일 설정 인터페이스 오류 알림
1938 단어 ng
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
import {ErrorObservable} from 'rxjs/observable/ErrorObservable';
import {catchError} from 'rxjs/operators';
import {mergeMap} from 'rxjs/operators';
@Injectable()
export class InterceptorService implements HttpInterceptor {
constructor(private messageService: MessageService, private translate: TranslateService) {}
intercept(req: HttpRequest, next: HttpHandler): Observable> {
return next.handle(req).pipe(mergeMap((event: any) => {
const err = event.body && event.body.err;
if (err) {
switch (err) {
case -1:
//
break;
default:
break;
}
}
if (event instanceof HttpResponse && event.status !== 200) {
return ErrorObservable.create(event);
}
return Observable.create(observer => observer.next(event)); //
}),
catchError((res: HttpResponse) => { //
this.messageService.clear();
switch (res.status) {
case 500:
//
break;
default:
//
}
return ErrorObservable.create(event);
}));
}
}
대응 하 는 module 에 공급 자 등록 하기:
import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
@NgModule({
providers: [
{provide: HTTP_INTERCEPTORS, useClass: InterceptorService, multi: true}
]
})
export class SharedModule {
}
모든 모듈 에 차단기 가 필요 하 다 면 shareModule 에 등록 할 수 있 습 니 다. (app. module 에 등록 하면 프로젝트 를 처음 불 러 올 때 만 유효 합 니 다.)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ng new 프로젝트 이름 (angular 프로젝트를 만들 때 오류 보고)문제 설명: ng new angularDemo11 명령을 사용하여 프로젝트를 만들 때 다음과 같은 오류 메시지가 표시됩니다. 오류를 보고했지만 angular Demo11 프로젝트 전체가 만들어졌지만 src 아래에 내...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.