如何解决RxJS:分批接收 10 个直到外部 observable 完成?
好久没碰 RxJs 了 :-(
我不知道如何批量取 10 个值,有人可以帮忙吗?
例如
import { interval } from 'rxjs';
import { toArray,take,tap } from 'rxjs/operators';
interval(100)
.pipe(
take(10),tap(item => {
// Should receive 10 x 10 items which would equal 100
})
)
.subscribe(console.log);
尝试批量操作,以上是我尝试实现的简化版本的示例。基本上,tap 应该一次接收 10 个项目,直到没有更多项目。
目前,tap 接收 10 个项目,1 个 1,所以我想使用 toArray(有更好的吗?) - 但这并不能帮助我在收到 10 个项目后继续。
我错过了什么?
提前致谢
解决方法
您需要使用 bufferCount 运算符
import { interval } from 'rxjs';
import { bufferCount,take,tap } from 'rxjs/operators';
interval(100)
.pipe(
bufferCount(10)
tap(items => {
console.log(items);
// will print array of 10 items,ten times
})
)
.subscribe();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。