La suscripción de rx kotlin no funciona, no recibe artículos

Creé una function que devuelve un Observable<String> con nombres de file, pero no obtengo ningún evento en mi suscripción donde llamo a este método. Además, no hay ninguna llamada de onError o onComplete
Ver mi código:

 fun getAllFiles(): Observable<String> { val allFiles = File("/Users/stephan/Projects/Playground/kotlinfiles/") .listFiles { file -> !file.isDirectory() } return observable { subscriber -> allFiles.toObservable() .map { f -> "${f.name}" } .doOnNext { println("Found file $it") } .subscribe { subscriber} } } fun test() { getAllFiles() .doOnNext { println("File name$it") } .subscribe( {n -> println("File: $n")}, {e -> println("Damn: $e")}, {println("Completed")}) } 

Aunque se llama a todo en la function getAllFiles() , entonces ¿qué me estoy perdiendo?

observable es para crear un Observable desde cero pero ya tiene Observable<String> de toObservable() por lo que no lo necesita. El siguiente código funciona para mí:

 fun getAllFiles(): Observable<String> { val allFiles = File("/Users/stephan/Projects/Playground/kotlinfiles/") .listFiles { file -> !file.isDirectory } return allFiles.toObservable() .map { f -> "${f.name}" } } fun test() { getAllFiles() .doOnNext { println("File name $it") } .subscribe( { n -> println("File: $n") }, { e -> println("Damn: $e") }, { println("Completed") }) } 

También puedes solucionar esto cambiando de:

 .subscribe{subscriber} 

a

 .subscribe(subscriber) 

pero esta versión anidada de Observable me resulta confusa.

  • Obligatorio <Objeto> y encontrado <Objeto>?
  • Excepción causada por: java.lang.ClassNotFoundException: org.reactivestreams.Publisher
  • Para una function de Kotlin utilizada como expresión, ¿hay una forma concisa de operar y devolver un valor?
  • No se puede cambiar el text de ActionMenuItemView con RxKotlin
  • Confusión de la syntax de Kotlin lambda
  • ¿Cómo hacer un grupo? ¿Por qué coleccionar usando RxJava y Kotlin?
  • RxJava2 Tal vez devuelva Observable vacío si no hay elemento
  • Cómo comprimir algunos observables en lenguaje Kotlin con RxAndroid
  • Cómo notificar a Observable cuando finalice CountdownTimer
  • Usando RxJava para unir datos locales con datos remotos (o en caching)
  • cómo implementar Switch usando Data binding en android