2017-02-23 57 views
0

我是个有点新的观测量,我已经成功发送一个POST API请求并获得一个正确的JSON响应:Angular2观察到与后 - 访问响应

{"id":138,"date":"2017-02-23T05:10:18"} 

但是我不确定如何访问此回应并做一些用它。这是帖子的服务:

// sends a media(file blob) object to WP API 
    updateMedia(file: File): Observable<File> { 
    let headers = new Headers({ 
     'Access-Control-Expose-Headers': 'Authorization, Content-Type, Content-Disposition', 
     'Content-Type': 'multipart/form-data', 
     'Content-Disposition': 'attachment; filename='+file.name, 
     'Authorization': 'Basic cmh5c0B0aGVpdHRlYW0uY29tLmF1OkRlc3Ryb3lfMSE=' 
    }); 
    let options = new RequestOptions({ headers: headers }); // Create a request option 

    return this.http.post(BASE_API, file, options) 
    .map((response: Response) => response.json()); 
    } 

这里是我的可观察到:

onUpdateMedia(file: File) { 
    this.mediaService 
     .updateMedia(file) 
     .subscribe((
     file: File) => { 
     this.file = Object.assign({}, this.file, event); 
     }); 
    console.log(event); //hmm not what i want 
    } 

任何帮助表示赞赏

回答

1

你不得不返回从地图的响应观察到的,比你将能够进入subscribe列表器。像这样

// sends a media(file blob) object to WP API 
    updateMedia(file: File): Observable<File> { 
     ............ 

    return this.http.post(BASE_API, file, options) 
    .map((response: Response) => return {res : response.json(), status : response.status}); 
    } 


    onUpdateMedia(file: any) { 
    this.mediaService 
     .updateMedia(file) 
     .subscribe((file: any) => { 
     console.log(file, "Response from Post Request Here....") 
     }); 
    } 
1

您的回复属于对象类型。在对象类型的变量中分配响应。

my_res:any; 
    onUpdateMedia(file: File) { 
    this.mediaService 
     .updateMedia(file) 
     .subscribe((
     data: any) => { 
     this.my_res=data 
     }); 

    }