Я не думаю, что это можно сделать просто с помощью операторов RxJava по умолчанию, но в качестве обходного пути вы можете заставить A выдавать «пустой элемент» с вашим значением только в начале.И затем, используя combineLatest
, вы можете проверить, является ли испускаемый элемент «пустым элементом», и если это так, преобразовать его в Maybe.empty()
, например, так (пример с Observable<String>
):
Observable.combineLatest(
a.startWith("EMPTY"),
b,
BiFunction<String, String, String> { a1, b1 -> a1 })
.firstElement()
.flatMap{ if (it == "EMPTY") Maybe.empty() else Maybe.just(it) }