没有 subscribe() 的 Observable 有效吗?

Is Observable without a subscribe() valid?

我调用每个 RetrofitDataService.getDataObservable(): Observable<List<LogicalChannel>> 的服务来获取数据流。

val dataStream = RetrofitDataService.getDataObservable()
    .doOnNext { item ->
        calculate(item)
    }
    .take(1)

dataStream.forEach { dataList ->
    totalDataCount = dataList.filter { it.isFlag }.size
}

1:我从来没有 subscribe() 任何地方。可以吗?

2: 上面的代码示例和下面的一样吗?我将 forEach 拉入 subscribe()

val dataStream = RetrofitDataService.getDataObservable()
    .doOnNext { item ->
        calculate(item)
    }
    .take(1)
    .subscribe( { dataList ->
             totalDataCount = dataList.filter { it.isFlag }.size
    })

是的,这很好。这是 forEach:

的实现
  public final Disposable forEach(Consumer<? super T> onNext) {
    return this.subscribe(onNext);
  }

它只是 subscribe 的别名,所以是的,您的第二个示例与第一个示例完全相同。