在服务中,有以下代码:

  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);
}

Typescript相关问答推荐

类型是工作.但它失go 了正确变体的亮点..为什么?或者如何增强?

如何推断类方法未知返回类型并在属性中使用它

使用Angular和API请求在CRUD操作后更新客户端数据的良好实践

TypeScript将键传递给新对象错误

有没有办法解决这个问题,类型和IntrinsicAttributes类型没有相同的属性?

状态更新后未触发特定元素的Reaction CSS转换

使用axios在ngOnInit中初始化列表

在不更改类型签名的情况下在数组并集上映射文字

对未到达受保护路由的路由环境做出react

使用Dockerfile运行Vite React应用程序时访问env变量

是否可以基于对象的S属性值[]约束对象的其他属性值用于类型化的对象数组?

从对象类型描述生成类型

如何在typescript中为this关键字设置上下文

根据类型脚本中的泛型属性 Select 类型

在Cypress中,您能找到表格中具有特定文本的第一行吗?

Cypress-验证别名的存在或将别名中的文本与';if';语句中的字符串进行比较

递归生成常量树形 struct 的键控类型

如何处理可能为空的变量...我知道这不是Null?

通过辅助函数获取嵌套属性时保留类型

对象只能使用 Typescript 中另一个对象的键