假设我有let response = await this.http.post(url, list).toPromise()
,有什么办法可以在仍使用await的情况下获取状态代码,例如200、404等。谢谢
您必须为此使用try
andcatch
块。您将在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] 删除。
我来说两句