Angular 4 : get error message in subscribe

标签 angular typescript

在服务中,有这段代码:

  getUser(id){
    return this.http.get('http:..../' + id)
      .map(res => res.json());
  }

在组件中:

this.myService.getUser(this.id).subscribe((customer) => {
  console.log(customer);
  this.customer = customer,
  (err) => console.log(err)
});

当“客户”存在时,没问题,我可以获得有关客户的所有信息。

当 id 不存在时,web api 返回 'BadRequest' 和一条消息。我怎样才能得到这条消息?状态?

谢谢,

最佳答案

(err) 需要在 customer 胖箭头之外:

this.myService.getUser(this.id).subscribe((customer) => {
  console.log(customer);
  this.customer = customer,
},
(err) => {console.log(err)});

要返回错误消息,请添加一个将返回错误对象的 catch:

getUser(id){
  return this.http.get('http:..../' + id)
    .map(res => res.json())
    .catch(this.handleError);
}

private handleError(error: any) { 
  let errMsg = (error.message) ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';
  return Observable.throw(error);
}

关于 Angular 4 : get error message in subscribe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45225339/

相关文章:

html - 当捕获到HTTP错误代码500时,显示一个不错的div

angular - 如何获取选定 mat-tree 节点的父节点

Angular 5 Material 5 MatTableDataSource.. ."' mat-card-title' 不是已知元素。”

javascript - 在 AngularJs 中使用 typescript 进行依赖注入(inject)

angular - Ag Grid 和异步管道导致加载覆盖问题

angular - 有没有办法根据日期过滤 Material 表

javascript - 在 ReactJS 中添加指向 Font Awesome 图标的链接

typescript - 如何在 Typescript 中引用工厂创建类的实例?找不到名字错误

javascript - 可以在 TS 中将 undefined 强制转换为 void 吗?

reactjs - 基于其他 Prop 值(value)的条件类型