【问题标题】:RXKotlin how do you map to void?RXKotlin 你如何映射到 void?
【发布时间】:2018-06-20 01:43:26
【问题描述】:

对不起 nooby kotlin 问题

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

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

我如何返回一个可观察的 void? 我试过voidVoid()Void

【问题讨论】:

    标签: android kotlin rx-java rx-kotlin


    【解决方案1】:

    Observable&lt;Void&gt; 的等价物,即不返回任何值的 Observable - 仅完成或以异常结束 - 是 Completable

    表示没有任何值但仅指示完成或异常的延迟计算。

    【讨论】:

    • 只是一个补充:您可以使用ignoreElements 将 Observable 转换为 Completable:stackoverflow.com/questions/40399397/…
    • Observable&lt;Void&gt; 确实通过 0...N next 事件返回单元类型(void)的值,所以它绝对不等同于Completable,它不会产生next 事件.
    【解决方案2】:

    Kotlin 中的Unit 对应于Java 中的void。与void 一样,Unit 是 Kotlin 中任何返回任何内容的函数的默认返回类型。

    使用CompletableSingleMaybe 可能更有意义

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      相关资源
      最近更新 更多