如何在上传(表单数据)请求结束后获取返回的数据(后端)?

How to get the data returned(back-end) after an Upload (form-data) request ends?

我有一个监控进度的上传方法。 上传工作正常,但最后,我的后端向我发送了一个上传文件的对象(注册)(id 等)

不知道怎么拍。要使用什么管道或要更改成什么 return 类型。

有什么帮助吗?

我的上传方式内容

[...]

        const formData = new FormData();
        formData.append('orderDate', orderDate);
        formData.append('file', fileToUpload.data, fileToUpload.name);

        const options: any = {
            observe: 'events',
            reportProgress: true,
        };

        fileToUpload.isUploading = true;
        
        return this.http.post<HttpEvent<Object>>(url, formData, options)
            .pipe(
                map((ev: HttpEvent<Object>) => {

                    if (ev.type === HttpEventType.Response) {

                        fileToUpload.isUploading = false;

                    } else if (ev.type === HttpEventType.UploadProgress) {

                        const percentDone = Math.round((ev.loaded * 100) / ev.total);
                        fileToUpload.uploadProgress = percentDone;
                        fileToUpload.isUploading = true;
                    }
                })
            );

您必须创建 Register 接口并将其转换为 if 条件。如果可能,请在 StackBlitz

中分享示例
 return this.http.post<HttpEvent<Object>>(url, formData, options)
            .pipe(
                map((ev: HttpEvent<Object>) => {

                    if (ev.type === HttpEventType.Response) {

                        fileToUpload.isUploading = false;
                        console.log(ev);

                    } else if (ev.type === HttpEventType.UploadProgress) {

                        const percentDone = Math.round((ev.loaded * 100) / ev.total);
                        fileToUpload.uploadProgress = percentDone;
                        fileToUpload.isUploading = true;
                    }
                })
            );