Повторить отправку объекта подписчику на Rx

можно ли повторно отправлять один и тот же объект подписчикам в Rx? Например, этот код (на Котлине):

 val exmp = listOf("А")
        var observable = exmp.toObservable()
            observable.subscribeBy(
                    onNext = {
                        it + "1"
                        println(it)
                    },
                    onError = { it.printStackTrace() },
                    onComplete = { println("Done!") }
            )

Я пытаюсь повторно отправить строковое значение «A» методу onNext() и получить «A111111». Метод replay() библиотеки Rx, как я понимаю, снова начинает отправку даты для новых подписчиков. В круге for дата из observable не меняется, просто метод вызывается несколько раз


person KnowledgeSeeker    schedule 21.03.2017    source источник


Ответы (1)


Вы можете попробовать сделать свой наблюдаемый объект ConnectableObservable, выполнив observable.publish(); Таким образом, все подписчики получат одинаковую информацию, и объект также будет создан только один раз. https://github.com/ReactiveX/RxJava/wiki/Connectable-Observable-Operators

person Zahid Rasheed    schedule 21.03.2017
comment
Не стал заморачиваться с RX, делай по старинке - person KnowledgeSeeker; 23.03.2017