Я думаю, что это будет сделано аналогично с большинством реактивных реализаций, поэтому я не указываю здесь какую-либо конкретную библиотеку и язык.
Как правильно реагировать на потоки с побочными эффектами (не уверен, какова правильная терминологияздесь)?
Итак, допустим, у нас есть поток Player
с.Мы хотим преобразовать это в поток всего id
с.Но в дополнение к этому, мы хотим сделать некоторую дополнительную реактивную обработку, основанную на идентификаторах.
Вот как это можно сделать не так элегантно, но каков идиоматический способ добиться этого:
Observable<Player> playerStream = getPlayerStream();
return playerStream
.map(p -> p.id)
.flatmap(id -> {
Observable<Result> weDontCare = process(id);
// Now the hacky part
return weDontCare.map(__ -> id);
})
Это нормально?Кажется, не так элегантно.