如何从方法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条记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在service中注入service

为啥浏览器只支持 GET 和 POST HTTP 方法?

HttpServlet的Service方法到底是怎么回事?

HTTP Methods 和 RESTful Service API 设计

如何从 Chrome 扩展程序发送 HTTP GET 请求?

如何转换Observable 到数组[]