解析http.post angular 2中的objectDTO

时间:2018-04-13 11:51:58

标签: angular typescript ionic2

我有一个带有(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);

1 个答案:

答案 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,只需使用泛型投射结果类型。

希望这会对你有所帮助。