rxjs - 如何在 Rxjs 中延迟序列发射
问题描述
我有一个可观察的:
messages: string[] = ['a', 'b', 'c'];
const source = from(messages)
你如何延迟它,所以当有人订阅它时,它会延迟 n 秒来发出项目?所以:
source.subscribe(i => console.log(i));
// output ...n seconds... 'a' ...n seconds... 'b' ...n seconds... 'c'
解决方案
您可以使用以下方法将流与间隔组合zip
:
zip(
from(['a', 'b', 'c', 'd']),
interval(1000),
(a, b) => a
)
.subscribe(console.log);
zip
将每个流的第 n 个元素组合成一个数组。这就是我们使用选择器功能的方式:(a, b) => a
. 它确保只使用第一个流中的元素。该interval
流仅用于延迟发射。
推荐阅读
- python - 如何在 celery 的 on_success() 和 on_failure() 回调中传递参数?
- c - 如何使用二叉搜索树存储字符串?
- python - PySpark DataFrame 中作为新列的行模式
- flutter - 使用不包含 MediaQuery 的上下文调用 MediaQuery.of()
- r - 根据 R 中的日期将行拆分为两个并添加新列
- java - 在二维数组中找到最长的路径(如多米诺骨牌)
- django - Django 不在 Debug True 中提供静态文件
- jupyter-notebook - 为什么这件作品在 jupyter-notebook 中是错误的,而在终端中是正确的?
- c# - 如何从 Windows 10 机器上收到的消息中删除象形文字?
- java - Spring JPA - findAll() 与示例/探针包括相关/加入实体