Вам необходимо использовать ()
целое число {}
в concatWith()
// RIGHT!
Flux.just("a", "v")
.flatMap { it.toUpperCase().toMono() }
.concatWith ( names.joinToString(" ").toMono() )
// WRONG!
Flux.just("a", "v")
.flatMap { it.toUpperCase().toMono() }
.concatWith { names.joinToString(" ").toMono() }
Большинство методов Rx2 принимают действительные лямбда-выражения, некоторые методы принимают Callable<ObservableSource<T>>
вместо ObservableSource
,другие берут Function<T, ObservableSource<R>>
.
Observable.defer { Observable.just(1) }
- это будет работать нормально.
или observable.flatMap { Observable.just(1) }
- тоже будет работать как положено (если вы намеренно игнорируете входящий параметр).
И третий - это тот факт, что мы привыкли к Rx1, который всегда брал Observable
в своем методе andThen()
, который не может быть представлен как лямбда, поэтому нам нужно вместо этого использовать ()
из {}