rxjs - Reactivo 编程练习
问题描述
我有一个可观察的源,当您单击时会发出。我想制作一个像下一个大理石图一样发出的运算符...
也就是说,它在第一次点击时发出。然后,当你有 2 个项目时它会发射,然后当你有 3 个项目时它会发射,等等。
我知道可以使用扫描和过滤运算符来完成,但我的问题是,是否可以使用 bufferWhen 运算符来完成?
我试图这样做(像这样),但结果不是我所期望的(第一次点击不会立即发出)。
解决方案
它按以下代码工作。尽量避免重用源代码bufferWhen
,可能存在竞争条件
const source$ = fromEvent(document, 'click').pipe(
map(_ => new Date())
);
interval(1000).pipe(
tap(d => console.log('CLICK:', d)),
bufferWhen(() => {
return source$
})
).subscribe(console.log);
推荐阅读
- python - sqlAlchemy 中的 Raq SQL 似乎格式化年份错误
- r - R中带有输入的Load()函数
- flutter - 定位的小部件与我的 CustomScrollView 重叠
- firebase - 为什么在 react-native 中调用 firebase 云功能而不是记录输出?
- sql - 如何优化或加速以下 sql 查询?
- excel - VBA查找匹配并将单元格复制到另一个
- javascript - 我们可以在 appscript 调用中调用单个函数中的两个函数吗?
- git - git中的“重置后未暂存的更改”是什么意思?
- javascript - 知道如何检查 div 中是否仅包含图像标签吗?
- javascript - 是否可以为 mongodb find() 以编程方式忽略 project()?