我有一个带有(http客户端)的http.post,我试图解析一个对象(json转换为该objectDTO的结果)
我正在使用此import { HttpClient, HttpHeaders } from '@angular/common/http';
login(user: UserLogin): Promise<UserPOJO> {
return new Promise<UserPOJO>((resolve, reject) => {
this.serviceProvider.login().then(
response => {
resolve(this.http.post(this.apiurl + '/users', serialize(user), { headers: headers})
.map(????)
.toPromise());
}).catch(err => reject(err));
});
}
我不知道你在map
中做了什么我想将反序列化的对象添加到objectDTO中。
注意我在我的UserPOJO上使用JsonProperty如下
@JsonProperty('jsonkey')
....
我的目标
我想返回反序列化的对象return deserialize(UserPOJO, user);
答案 0 :(得分:0)
由于承诺的美丽,你可以以一种不那么令人费解的方式做你想做的事情:
login(user: UserLogin): Promise<UserPOJO> {
return this.serviceProvider.login().then(response =>
this.http.post<UserPOJO>(this.apiurl + '/users', serialize(user),
{ headers: headers })
.toPromise();
);
}
如果您在Promise
内返回then
,则then
返回的承诺会解析或拒绝与该内部承诺相同的值,因此您无需创建一个新的呼叫new Promise
。我假设您的/users
服务已经返回UserPOJO
个对象,因此您不需要使用map
,只需使用泛型投射结果类型。
希望这会对你有所帮助。