angular - Observable 中的错误处理程序未映射到 JSON

标签 angular angular2-http

订阅中的错误回调未映射到 JSON 槽映射函数!为什么?

this.http.get("/something")
            .map((response: any) => response.json())
            .subscribe((response: any) => {
                  // response is body of request
            }, (error: any) => {
                // error must be mapped again
                let error = JSON.parse(error._body);
            });

最佳答案

因为 get() 返回的 Observable 有错误,map() 被传递的函数没有被调用(因为没有事件被发射)。即,箭头函数 (response: any) => response.json() 没有被调用。相反,错误会传播直到被某些东西捕获。如果没有发现错误,您将在浏览器控制台中看到异常。

您可以使用 .catch() 和/或通过在 subscribe() 中提供错误处理程序来捕获错误。

我试图在这里创建一个健壮的 http 错误处理程序:https://stackoverflow.com/a/35329086/215945
它捕获从 .get().json() 产生的错误。

关于angular - Observable 中的错误处理程序未映射到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35488808/

相关文章:

jquery - 如何从 Angular 2 组件调用 jstree On 函数

javascript - #selector 仅适用于根元素而不适用于 Angular 子元素

Angular 虚拟滚动跳跃

Angular trackBy 返回 *ngFor 中的索引 vs item id

angular - 如何使用与angular2 http服务的保持连接

Angular 2. Http 映射\订阅问题

Angular 2 "No provider for String!"

angular - 403错误未被catchError函数Angular 7捕获

Angular 2 :Error - Cannot find a differ supporting object '[object Object]' of type 'object' . NgFor 仅支持绑定(bind)到可迭代对象,例如数组

Angular:找不到不同的支持对象 '[object Object]'