Я использую наблюдаемую rxjs для моделирования последовательности шагов, которые происходят в моем приложении.
Псевдокод
const steps = [{id: "step1"}, {id: "step2"}, {id: "step3"}]
//... then at some point later do things based on the steps
from(steps).pipe(
concatMap((step) => {
... do stuff with each step, perhaps including needing to go back to previous step
})
)
Учитывая этот шаблон, как я могу смоделировать «возврат», если это необходимо по некоторым условиям?
Например, переход от шага 1 -> шаг 2 -> шаг 3 -> шаг 2 -> шаг 3.
Из того, что я могу сказать, rxjs кажется довольно строго односторонним. Я не нашел способа установить положение/индекс наблюдаемого (если это правильный способ его осмысления).
Извините, если я упустил что-то очевидное, но похоже, что это может быть довольно распространенным вариантом использования наблюдаемых, созданных из массивов.
repeat
для повторной подписки на источник. Если будет холодно, как в вашем случае, вы снова получите все уведомления. Если жарко, вам нужно будет использовать что-то вродеshareReplay
, чтобы воспроизвести прошлые события. - person ggradnig   schedule 04.06.2020