RXKotlin, как вы сопоставляете пустоту?

Извините, нуби-котлин, вопрос

func someThingElse(): Observable<String> {
   return Observable.just("aasd")
} 

fun doSomething(): Observable<Void> {
    return someThisElse().fetch().map { () } 
}

Как вернуть наблюдаемую пустоту? Я пробовал void, Void(), Void


person aryaxt    schedule 20.06.2018    source источник


Ответы (2)


Unit в Kotlin соответствует void в Java. Как и void, Unit — тип возвращаемого значения по умолчанию для любой функции в Kotlin, которая что-либо возвращает.

Используя Completable, Single или Maybe может иметь больше смысла

person Mostafa Gazar    schedule 20.06.2018

Эквивалент Observable<Void>, т.е. Observable, который не возвращает никакого значения — только завершается или заканчивается с исключением — Completable:

Представляет отложенное вычисление без какого-либо значения, а только индикацию завершения или исключения.

person michalbrz    schedule 20.06.2018
comment
Просто дополнение: вы можете использовать ignoreElements для преобразования Observable в Completable: stackoverflow.com/questions/40399397/ - person Christopher; 20.06.2018
comment
Observable<Void> возвращает значение типа единицы измерения (void) через 0...N next событий, поэтому он определенно не эквивалентен Completable, который не производит next событий. - person Sergiy Salyuk; 13.11.2020