【问题标题】:Observable that cycles trough values可观察到的循环谷值
【发布时间】:2019-01-11 09:56:49
【问题描述】:

我有两个被压缩的 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 creator函数。

如何创建一个循环遍历固定值列表的 observable?

【问题讨论】:

    标签: rxjs rxjs6


    【解决方案1】:

    试试这个使用from并与repeat()结合

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

    【讨论】:

    • 在用asyncScheduler 声明from 后,我得到了这个工作。 :-)
    猜你喜欢
    • 2018-01-29
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多