如何延迟 Rxjs 中的序列发出

cdx*_*dxf 3 observable rxjs

我有一个可观察的:

  messages: string[] = ['a', 'b', 'c'];
  const source = from(messages)
Run Code Online (Sandbox Code Playgroud)

如何延迟它,以便当有人订阅它时,它会延迟 n 秒来发出项目?所以:

source.subscribe(i => console.log(i));
// output  ...n seconds... 'a' ...n seconds... 'b' ...n seconds... 'c'
Run Code Online (Sandbox Code Playgroud)

a b*_*ver 6

您可以使用以下方法将流与间隔结合起来zip

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

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