Bleser
@Bleser

Как получить последнее событие в rxjs?

При помощи чего в rxjs можно реализовать получение последнего события, если подписка на него произошла только через некоторый промежуток времени.
Пример:
1. Происходит клик мышки
2. уведомляются все кто был подписан на это событие
3. проходит время
4. кто о еще подписывается и в этот момент он получает последнее событие.
Возможно в rxjs нет такой возможности, тогда как можно такое реализовтаь?
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
Bleser
@Bleser Автор вопроса
Нашел решение:
let count = 0

        let obs = Observable.create(s=>{
            setInterval(()=>{
                s.next(count++)
                // s.complete()
            },2000)
        }).publishReplay()

        obs.connect()//Без этого не работает

        obs.subscribe(
            v=>console.log(`A: ${v}`)
        )

        setTimeout(()=>{
            obs.subscribe(
                v=>console.log(`B: ${v}`)
            )
        },10000)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Используйте BehaviorSubject
Ответ написан
Комментировать
AMar4enko
@AMar4enko
publishReplay().refCount()
connect() будет не нужен
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы