У меня есть две наблюдаемые, которые застегиваются на молнии. Один генерирует поток событий из внешнего источника, а другой генерирует поток предварительно определенных строк.
Пример кода:
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
:
Наблюдаемая, которая генерирует аргументы, описанные выше, а затем завершает.
Теперь я бы хотел, чтобы words$
был зациклен. То есть, когда последний элемент был выпущен, он начинается с начала. Так что ticker$
не остановится:
#=> ["Tick", "foo"]
#=> ["Tick", "bar"]
#=> ["Tick", "foo"]
#=> ...
Глядя на документацию, нет функции создания #cycle
.
Как я могу создать наблюдаемую, которая циклически перебирает список фиксированных значений?