如何从方法http Get in service Api Angular中仅获取前10条记录
Posted
技术标签:
【中文标题】如何从方法http Get in service Api Angular中仅获取前10条记录【英文标题】:How to Get only first 10 record from method http Get in service Api Angular 【发布时间】:2021-12-28 04:47:56 【问题描述】:我有这个方法来获取产品列表 此方法返回所有记录,但我只需要从服务而不是 ts 组件返回 10 条记录:
getProduits():Observable<any[]>
return this.http.get<any>(this.APIUrl+'/Fproduits');
【问题讨论】:
【参考方案1】:选项 1。 在后端实现额外的逻辑。例如,您可以发送带有查询字符串的请求以指定所需的项目限制:
getProduits():Observable<any[]>
return this.http.get<any>(`$this.APIUrl/Fproduits?limit=10`);
选项 2。 使用管道转换您的响应:
getProduits():Observable<any[]>
return this.http.get<any>(`$this.APIUrl/Fproduits`).pipe(map((el) => el.slice(0, 3)));
这是我的例子:
import of from 'rxjs';
import map from 'rxjs/operators';
const array = [1, 2, 3, 4, 5, 6];
const limit = 3;
const get = () => of(array); // returns an observable
const getProduts = limit => (
get()
.pipe(map(response => response.slice(0, limit)))
.subscribe(data => console.log(data))
)
getProduts(limit);
【讨论】:
谢谢,但不工作 @AspCoreStudent 请看一下我的例子 现在,选项 2 有效,但检索结果太慢,如何快速返回 10 条记录 我建议在后端实现逻辑(选项 1)以上是关于如何从方法http Get in service Api Angular中仅获取前10条记录的主要内容,如果未能解决你的问题,请参考以下文章
HTTP Methods 和 RESTful Service API 设计