从Angular 4错误中提取错误信息

时间:2017-06-29 19:17:37

标签: javascript angular typescript

Angular 4应用中的以下方法引发错误:

getAll() {
    console.log('Inside getAll!');
    return this.http.get('http://ip.addr:4000/some.pdf')
               .map((response: Response) => response.blob())
               .catch((err:Response) => {
                   console.log('Error block!');
                   let details = err.json();

                   return Observable.throw(details);
               });
}  

Firefox控制台打印"Error Block",表示http.get()已抛出错误,该错误已被困在catch()块中。但是,有关错误的信息未公开以用于调试。

控制台中的错误是ERROR TypeError: err is undefined

需要对上述代码进行哪些具体更改,以便可以在控制台中打印有关错误的更多相关信息?

1 个答案:

答案 0 :(得分:0)

精化时间。

我建议你把它分成两部分 首先,让我们在服务中发出http请求和结果 Observable

example.service.ts

getAll() {
    return this.http.get('http://ip.addr:4000/some.pdf', { responseType: ResponseContentType.Blob })
                    .map((res: Response) => res.blob());
};

让我们使用我们在虚构组件中的getAll方法中创建的 Observable

example.component.ts

constructor(
    private exampleService: ExampleService
){};

ngOnInit(){
    this.getThePDF();
};

getThePDF(){
    this.exampleService.getAll().subscribe(
            res => console.log('All is cool, here you go', res),
            err => console.error('All is not so cool :(', err)
        );
};

这显然不是您需要的所有数据我只是指出了重要的部分(不包括导入等)。这是我处理http请求的方式,它也适用于你。