Angular 6-使用http客户端等待,如果失败,如何获取状态代码

Ben

假设我有let response = await this.http.post(url, list).toPromise(),有什么办法可以在仍使用await的情况下获取状态代码,例如200、404等。谢谢

悉达(SiddAjmera)

您必须为此使用tryandcatch块。您将在catch块中得到错误

catch块将获得类型的实例,该实例HttpErrorResponse具有status属性。

像这样:

import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

  constructor(private http: HttpClient) {}

  async ngOnInit () {
    try {
      const response = await this.http.get('https://jsonplaceholder.typicode.com/users/13').toPromise();
      console.log(response);
    } catch(error) {
      console.log('Error Status: ', error.status);
    }
  }

}

更新:

由于您使用的HttpClient,而不是observe荷兰国际集团的'response',你只会得到响应的有效载荷数据的响应,你得到。如果还需要status它,则必须暂停httpOption { observe: 'response' }像这样:

import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

  constructor(private http: HttpClient) {}

  async ngOnInit () {
    try {
      const response = await this.http.get('https://jsonplaceholder.typicode.com/users/1', { observe: 'response' }).toPromise();
      console.log('Response Status: ', response.status);
      console.log('Response Body: ', response.body);
    } catch(error) {
      console.log('Error Status: ', error.status);
    }
  }

}

这是供您参考的更新的工作示例StackBlitz

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章