我有两个压缩的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
创建者功能。
如何创建一个循环观察固定值列表的可观察对象?
答案 0 :(得分:1)
尝试使用from
并与repeat()
组合
let ticks$ = interval(10000).pipe(mapTo("Tick"));
let words$ = from(["foo", "bar"]).pipe(repeat());