service.$post()
我从返回类型的服务中观察到 <Observable<any[]>>
, 发出这个集合
[{ name: 'nike' }, { name: 'nika' }, { name: 'niko' }, { name: 'niky' }]
this.posts = <Observable<any[]>>this.service.$post();
// result
// [{ name: 'nike' }, { name: 'nika' }, { name: 'niko' }, { name: 'niky' }]
我的问题是如何控制或过滤从发出的集合中返回的对象数量,在下面的示例中我想从 <Observable<any[]>>this.service.$post()
中获取 2 个对象.请帮忙
this.posts = this.service.$post()
.pipe(
take(2)
);
// should be
// [{ name: 'nike' }, { name: 'nika' }]
最佳答案
你可以这样得到第一个元素:
this.posts = this.service.$post()
.pipe(
map(arr => arr[0])
);
take(1)
运算符将仅返回您的可观察对象发出的第一个值。在这种情况下,它将是整个数组。由于 post 请求只发出一次,所以它不会真正有用。
如果你想保留 x
个项目,你可以这样做:
const x = 2;
this.posts = this.service.$post()
.pipe(
map(arr => arr.slice(0, x))
);
关于javascript - 如何控制或过滤从 rxjs 可观察对象中发出的集合返回的对象数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49977198/