如何在RxJs Observable中使用“跳过”和“获取”

马丁

我正在学习Angular 2,TypeScript,RxJs等,但是在使用RxJs和Observable返回服务内部的数据子集时遇到问题。

我希望下面的getCars函数读取一个json文件,对其进行解析并返回一部分数据(偏移量和计数)。但是,我总是会取回所有数据(我正在测试的文件中有200个实体/汽车)。

我究竟做错了什么?

实体服务

@Injectable()
export class EntityService {

  constructor(private http: Http) { }

  getCars(offset: number, count: number): Observable<Car[]> {
     return this.http
      .get('resources/data/cars.json')   
      .map(this.extractData)
      .skip(offset)
      .take(count)
      .catch(this.handleError);
  }

  private extractData(res: Response) {
    let body = res.json();
    return body.data || {};
  }

  private handleError(error: any) {
    // ...
  }
}

cars.json

    {
        "data":[
            {
                "vin":"ee8a89d8",
                "brand":"Fiat",
                "year":1987,
                "color":"Maroon"
            },
            {
                "vin":"642b3edc",
                "brand":"Renault",
                "year":1968,
                "color":"White"
            }
    ]
}
蒂埃里圣堂武士

实际上,您将始终使用此方法加载所有数据。skiptake,如果你有在数据流中接收到的几件大事运营商只适用:

  • 跳过:跳过许多事件
  • 考虑:仅考虑指定数量的事件

在您的情况下(一个HTTP请求),您只有一个:当您获取数据时。因此,如果要过滤数据,则需要使用其他map运算符。像这样的东西:

getCars(offset: number, count: number): Observable<Car[]> {
  return this.http
    .get('resources/data/cars.json')   
    .map(this.extractData)
    .map(data => {
      return data.slice(offset, offset + count); // <----
    })
    .catch(this.handleError);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 RxJS 中使用 await

来自分类Dev

如何在RxJS中完成Observable

来自分类Dev

如何在RxJS中使事件超时?

来自分类Dev

如何在RxJS Observable上调用next和error

来自分类Dev

如何在Observable.bindCallback方法中使用RXJS选择器函数?

来自分类Dev

如何在Observable.bindCallback方法中使用RXJS选择器函数?

来自分类Dev

如何在Angular中使用Observable获取多个页面?

来自分类Dev

如何在TypeScript的ReactiveX / rxjs 5中使用exhaustMap

来自分类Dev

如何在rxjs中使用节点的转换流?

来自分类Dev

如何在RxJS中使用node-walk?

来自分类Dev

如何在Angular中使用subscribe-next RxJS?

来自分类Dev

如何在takeWhile中使用rxjs缓冲区

来自分类Dev

如何在RxJS中的GroupBy中使用分组密钥,

来自分类Dev

我如何在React中使用RXJS fromEvent?

来自分类Dev

如何在RxJS中使用node-walk?

来自分类Dev

稍后如何在 rxjs 可观察流中使用属性?

来自分类Dev

如何在 rxjs/operator 中使用地圖

来自分类Dev

如何在 Angular 5 中使用 combineLatest 和 takeUntil rxjs 运算符

来自分类Dev

如何在RxJS中返回存根Observable <void>

来自分类Dev

如何在RxJs中合并间隔流和Promise流并获取值?

来自分类Dev

如何在angular2-meteor项目中使用RxJS?

来自分类Dev

Angular NGRX如何在ngOnInit中使用rxjs运算符

来自分类Dev

如何在Angular 9中使用rxjs来控制服务调用的流程?

来自分类Dev

如何在Array.prototype.map中使用await等待RxJS Observables

来自分类Dev

如何在RXJS中使用可观察变量来转换数组?

来自分类Dev

如何在Angular 2中使用RxJS“ throttle”运算符

来自分类Dev

如何在 Angular 4 中使用 RxJS 将道具正确传递给组件?

来自分类Dev

如何在 Angular 5 中使用 rxJS 存储来自 API 的可观察数据?

来自分类Dev

如何在 Angular2 中使用 RxJS 与 HATEOAS API 交互?

Related 相关文章

  1. 1

    如何在 RxJS 中使用 await

  2. 2

    如何在RxJS中完成Observable

  3. 3

    如何在RxJS中使事件超时?

  4. 4

    如何在RxJS Observable上调用next和error

  5. 5

    如何在Observable.bindCallback方法中使用RXJS选择器函数?

  6. 6

    如何在Observable.bindCallback方法中使用RXJS选择器函数?

  7. 7

    如何在Angular中使用Observable获取多个页面?

  8. 8

    如何在TypeScript的ReactiveX / rxjs 5中使用exhaustMap

  9. 9

    如何在rxjs中使用节点的转换流?

  10. 10

    如何在RxJS中使用node-walk?

  11. 11

    如何在Angular中使用subscribe-next RxJS?

  12. 12

    如何在takeWhile中使用rxjs缓冲区

  13. 13

    如何在RxJS中的GroupBy中使用分组密钥,

  14. 14

    我如何在React中使用RXJS fromEvent?

  15. 15

    如何在RxJS中使用node-walk?

  16. 16

    稍后如何在 rxjs 可观察流中使用属性?

  17. 17

    如何在 rxjs/operator 中使用地圖

  18. 18

    如何在 Angular 5 中使用 combineLatest 和 takeUntil rxjs 运算符

  19. 19

    如何在RxJS中返回存根Observable <void>

  20. 20

    如何在RxJs中合并间隔流和Promise流并获取值?

  21. 21

    如何在angular2-meteor项目中使用RxJS?

  22. 22

    Angular NGRX如何在ngOnInit中使用rxjs运算符

  23. 23

    如何在Angular 9中使用rxjs来控制服务调用的流程?

  24. 24

    如何在Array.prototype.map中使用await等待RxJS Observables

  25. 25

    如何在RXJS中使用可观察变量来转换数组?

  26. 26

    如何在Angular 2中使用RxJS“ throttle”运算符

  27. 27

    如何在 Angular 4 中使用 RxJS 将道具正确传递给组件?

  28. 28

    如何在 Angular 5 中使用 rxJS 存储来自 API 的可观察数据?

  29. 29

    如何在 Angular2 中使用 RxJS 与 HATEOAS API 交互?

热门标签

归档