gpt4 book ai didi

ajax - 元组的 Angular HTTP 可观察对象

转载 作者:行者123 更新时间:2023-12-04 23:07:46 38 4
gpt4 key购买 nike

在我的服务中,我有 getTasks()方法:

getTasks(): Observable<TaskDto[]> {
let url = `/tasks/gettasks`;
return this.http
.get(url)
.subscribe(res => res);
}

这很好,但现在我想读取响应 header 并将其值与有效负载一起返回。所以而不是Observable<TaskDto[]>该方法应返回可观察的元组:Observable<[TaskDto[],Number]>

getTasks(): Observable<[TaskDto[],Number]> {
let url = `/tasks/gettasks`;
return this.http
.get<TaskDto[]>(url, {observe: 'response'})
.subscribe(res => {
let payload:TaskDto[] = res.body;
let page:Number = Number(res.headers.get('X-Pagination'));
let output = [payload, page];
});
}

我能够读取 header 值,但如何返回 Observable<[TaskDto[],Number]来自 getTasks() ?

最佳答案

您应该在 getTasks 方法中使用 map 将您的 http 响应映射到您真正想要返回的元组中。像这样:

getTasks(): Observable<[TaskDto[],Number]> {
let url = `/tasks/gettasks`;
return this.http
.get<TaskDto[]>(url, {observe: 'response'})
.pipe(map(res => {
let payload:TaskDto[] = res.body;
let page:Number = Number(res.headers.get('X-Pagination'));
let output: [TaskDto[],Number] = [payload, page];
return output;
}));
}

然后从调用组件订阅这个方法。

关于ajax - 元组的 Angular HTTP 可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935700/

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