gpt4 book ai didi

angular - HttpParams 与 Put 和 Post 一起使用将返回类型更改为 Angular 6 中的 Observable>

转载 作者:行者123 更新时间:2023-12-05 06:31:11 24 4
gpt4 key购买 nike

我有一个场景,我正在写一篇文章,它也给了我一个 json 对象。

仅在帖子中使用 URL 和正文时,返回类型为 Observable<T>

但是当它也使用 params 时,返回类型变为 Observable<HttpEvent<T>>

这是一个简单的例子...

要发布的信息

let someInfo: SomeInfo = new SomeInfo("abc", "xyz");

post 后期望的返回类型是 MwUser。

没有参数的普通帖子

this.httpclient.post<MwUser>(apiUrl, someInfo).subscribe(
res => {
console.log(res);
},
error => {
console.log(error);
}
);

res是MwUser

enter image description here

现在用参数做同样的事情

const paramToPass: any = new HttpParams().set('groupType', 'xyz');
this.httpclient.post<MwUser>(apiUrl, someInfo, paramToPass).subscribe(
res => {
user = res;
console.log(res);
},
error => {
console.log(error);
}
);

这里res不是MwUser

enter image description here

如何处理第二种情况(上图)以将 res 更改为 MwUser 并仍然传递参数?

旁注:当我们将参数传递给 get 时,返回类型为 Observable<T> .

最佳答案

添加observe : 'body';第三个参数,即httpOptions (在你的情况下 paramToPass )期望返回类型 Observable<T> .您可以查看官方文档以查看 http.post 的不同变体。

let paramToPass = {};
paramToPass['params'] = new HttpParams().set('groupType', 'xyz');
paramToPass['observe'] = 'body';

this.httpclient.post<MwUser>(apiUrl, someInfo, paramToPass).subscribe(
res => {
user = res;
console.log(res);
},
error => {
console.log(error);
}
);

关于angular - HttpParams 与 Put 和 Post 一起使用将返回类型更改为 Angular 6 中的 Observable<HttpEvent<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51885155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com