일부 응답 성 본문의 값을 기반으로 응답 본문을 변경할 수없는 것처럼 보입니다.HttpInterceptor 다른 관찰 가능 값을 기반으로 응답 본문을 변경하십시오.
요청을 변경하는 것은 매우 간단합니다. 응답과 함께하는 방법을 모르겠습니다.
@Injectable()
export class MyHttpInterceptor implements HttpInterceptor {
constructor(private _injector: Injector) {
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).map((event: HttpEvent<any>) => {
if (!(event instanceof HttpResponse)) return event;
const translateService = this._injector.get(TranslateService);
// retrieved the key from the reponse, now need to retrieve data from the translateservice
translateService.get(`${event.body.key}`).subscribe((value: string) => {
event.body.message = value;
});
// how to return new response ??
return event.clone({ body: event.body });
});
}
}
기본적으로 나는 새로운 속성 'message'가있는 새로운 응답 본체를 반환하려고합니다.
translateService.get의 값으로 해석됩니까? 우리는 어떻게 그 가치를 몸에 붙일 수 있습니까? – Lars
'translateService.get()'에 다른 맵을 추가하여 getbody() 함수의 값으로 eventbody.message 값을 매핑하고 반환해야합니다. – theOriginalJosh
몸에 직접 쓸 수 없어 복제 된 이벤트를 만들어야했습니다. 나를 올바른 길로 가게 해주셔서 고마워. :). 내 대답을 보라. 최종 결과 – Lars