可以观察到谷值循环

时间:2019-01-10 03:47:41

标签: rxjs rxjs6

我有两个压缩的Observable。一种是从外部来源生成事件流,另一种是生成预定义字符串流。

示例代码:

import { interval, of, zip } from "rxjs";
import { pipe, mapTo } from "rxjs/operators";

let ticks$ = interval(1000).pipe(mapTo("Tick"));
let words$ = of("foo", "bar"); 

let ticker$ = zip(ticks$, words$);

ticker$.subscribe((e) => console.log(e));

此代码将按预期工作,并输出直到words$用完元素为止,并在此点完成并ticker$停止:

#=> ["Tick", "foo"]
#=> ["Tick", "bar"]

到目前为止,太好了。它根据#of的文档进行工作:

  

一个Observable,它发出上述参数,然后完成。


现在,我想循环words$。也就是说,发出最后一个元素后,它从头开始。因此ticker$不会停止:

#=> ["Tick", "foo"]
#=> ["Tick", "bar"]
#=> ["Tick", "foo"]
#=> ...

查看文档,没有#cycle创建者功能。

如何创建一个循环观察固定值列表的可观察对象?

1 个答案:

答案 0 :(得分:1)

尝试使用from并与repeat()组合

let ticks$ = interval(10000).pipe(mapTo("Tick"));
let words$ = from(["foo", "bar"]).pipe(repeat());