获取角度Observable流作为数组

mak*_*asi 10 observable rxjs angular

我有列表,应该模拟流:

list = [
  {name : 'Str1', age: 10},
  {name : 'Str2', age: 10},
  {name : 'Str3', age: 10}
];
Run Code Online (Sandbox Code Playgroud)

Observable从这个列表中创建了一个:

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

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

我不想在数组中逐个放置每个值.

我是新来的,不仅是角度,还有javascript.

yur*_*zui 9

你试过使用toArray运营商吗?

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);
Run Code Online (Sandbox Code Playgroud)
<script src="https://npmcdn.com/@reactivex/rxjs@5.0.3/dist/global/Rx.min.js"></script>
Run Code Online (Sandbox Code Playgroud)