首页 > 解决方案 > 如何在 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'

标签: rxjsobservable

解决方案


您可以使用以下方法将流与间隔组合zip

zip(
  from(['a', 'b', 'c', 'd']),
  interval(1000),
  (a, b) => a
)
.subscribe(console.log);

zip将每个流的第 n 个元素组合成一个数组。这就是我们使用选择器功能的方式:(a, b) => a. 它确保只使用第一个流中的元素。该interval流仅用于延迟发射。


推荐阅读