如何以角度获取 PATCH 方法的状态代码?

时间:2021-03-02 19:19:33

标签: angular rest httpresponse

我正在使用 PATCH 方法进行网络服务 API 调用。如果补丁成功,那么它将返回 204 状态代码。在状态码的帮助下,我在我的组件中编写逻辑。但是当我执行 console.log 时,HTTPResponse 为空。在这种情况下如何获取状态代码来编写我的逻辑?

public invokePatchRequest(): void {
        this.myService
        .invokePatchRequest('John')
        .pipe(takeUntil(this.unsubscribe$))
        .subscribe(
            (response: HttpResponse<any>) => {
                if (response.status === 204 ) {
                    console.log('Display Success Message');
                } 
            },
            (error: HttpErrorResponse) => {
                // Handle Error
            }
        );
    }

在上面的代码中,响应为空。所以我无法比较状态代码。请指教。

1 个答案:

答案 0 :(得分:0)

默认情况下,HttpClient 的 patch 方法观察响应的主体。要获得完整的响应(包括状态),您可以在调用方法时向选项对象添加 observe: 'response'

例如:

const url = 'http://anything.com';
const body = {};

this.http.patch<ResponseBodyType>(url, body, {observe: 'response'}); // will return Observable<HttpResponse<ResponseBodyType>>