获取角度可观察流作为数组 [英] Get angular Observable stream as array

查看:50
本文介绍了获取角度可观察流作为数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个列表,应该模拟流:

I have list, that should simulate the stream :

list = [
  {name : 'Str1', age: 10},
  {name : 'Str2', age: 10},
  {name : 'Str3', age: 10}
];

,并且我已经从该列表中创建了Observable:

and I've created an Observable from this list:

Observable.from(this.list).skip(this.currentPage * this.pageSize).take(this.pageSize).subscribe(data => this.pagerList = data, console.error);

然后在subscribe方法中,我一一得到值.我应该如何等待整个数据返回,然后获得整个列表.有take()运算符,在此之后,Observable必须停止.

And in the subscribe method I get the values one by one. How I'm supposed to wait for the whole data to be returned and then to get the whole list. There is take() operator, and after it the Observable have to stop.

我不想将每个值一个接一个地放入数组中.

I don't want to put every value one by one in the array.

我在这里是新来的,不仅是针对角度的,而且还针对javascript.

I'm new here, not only for angular, but for javascript as well.

推荐答案

您是否尝试过使用toArray运算符?.

Have you tried to use toArray operator?.

let list = [
  { name: 'Str1', age: 10 },
  { name: 'Str2', age: 10 },
  { name: 'Str3', age: 10 },
  { name: 'Str4', age: 10 },
  { name: 'Str5', age: 10 },
  { name: 'Str6', age: 10 }
];

let currentPage = 2;
let pageSize = 2;

Rx.Observable.from(list)
  .skip(currentPage * pageSize)
  .take(pageSize)
  .toArray()
  .subscribe(data => console.log(data), console.error);

<script src="https://npmcdn.com/@reactivex/rxjs@5.0.3/dist/global/Rx.min.js"></script>

这篇关于获取角度可观察流作为数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆