javascript - 从 RxJs Observable 方法调用访问我返回的数据
问题描述
(NEWB) 如何修改 my中的updateUserProfile()
Observable 方法service
,以便可以访问返回的数据?我想在 myuser
中设置 my 的值service
,而不是在 my 中component
。是否有我可以使用的其他回调函数或运算符?
这是我的用户对象:
user: User = {
user: {
first_name: '',
last_name: '',
id_number: '',
email: '',
password: '',
phone: '',
notes: '',
ricaAddress: {
street_number: '',
street_name: '',
building_name: '',
floor_level: '',
unit_number: '',
suburb: '',
city: '',
province: '',
postal_code: '',
country: ''
}
}
};
这是我的updateProfile()
电话component
:
updateProfile() {
this.userService
.updateUserProfile(this.user)
.subscribe(
response => {},
err => this.handleError(err),
() => console.log('complete')
);
}
这是updateUserProfile()
我要修改的服务中的方法:
updateUserProfile(user): Observable<any> {
const httpOptions2 = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
apiKey: 'xEr4slh6wdngI-imBb9t8sm4JLY-e1yQz7Tmo7S2A',
key: '6f4962c7-0706-4cf7-b7ce-0b7dc75fcc57',
Authorization: this.userToken
})
};
return this.http
.put(this.apiUrl + 'users' + 'user_id', user, httpOptions2)
.pipe(catchError(this.handleError));
}
谢谢!
解决方案
您可以添加map
管道以返回一个新的、更新的对象。在您的服务中:
return this.http
.put(this.apiUrl + 'users' + 'user_id', user, httpOptions2)
.pipe(
map(response => {
// return a new object from here
}),
catchError(this.handleError)
);
的回调的返回值map
可以直接在你的组件中访问。
推荐阅读
- c++ - 模板类中构造函数的条件定义
- c++ - AOSP - 错误:未定义的引用
在构建期间 - javascript - 如何解决这个 React Promise 竞争条件问题
- android - 在应用程序窗口的上侧定位 16x9 图像(约束布局)(android studio)
- asp.net - .Net 应用程序中的 FreeOTP 两因素身份验证
- build - 如果不在配方中使用 FILE 会发生什么?
- javascript - 尽管 redux 中的状态更改和组件的 props 更改,但页面也不会重新渲染
- c - 为什么我的 clrscr 功能不起作用
- c# - 如何在 C# 中解析/反序列化文本序列化的 HTML。.Net 中是否有任何实用程序或类可用
- node.js - 如何使用 Node 和 Express 上的 Multer 和 Sharp 调整上传图像的大小