在Angular 6中,我们可以使用async/await
语法来处理HttpClient的异步请求。如果请求失败了,我们可以通过捕获错误并从错误中获取状态码。
以下是一个使用await
来处理HttpClient请求并获取状态码的示例代码:
import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
@Injectable()
export class MyService {
constructor(private http: HttpClient) {}
async makeRequest(): Promise {
try {
// 发起异步请求
const response = await this.http.get('https://api.example.com/data').toPromise();
// 处理成功响应
console.log('请求成功');
return response;
} catch (error) {
// 处理错误响应
if (error instanceof HttpErrorResponse) {
console.log('请求失败,状态码:', error.status);
}
throw error;
}
}
}
在上面的代码中,我们使用了async/await
语法来等待异步请求的结果。如果请求成功,我们会打印出"请求成功"并返回响应数据。如果请求失败,我们会捕获HttpErrorResponse
错误,并从中获取状态码。
请注意,我们在catch
块中使用了instanceof
运算符来检查错误类型,以确保我们只处理HttpErrorResponse
错误。这是因为在使用await
语法时,如果没有正确处理错误,它可能会抛出一个PromiseRejectionHandledWarning
。
希望这个示例能帮助到你!