如何迭代Single <list>并映射到另一个列表?

时间:2017-11-23 14:47:20

标签: android kotlin rx-android rx-java2

作为改造请求的结果我得到Single<List<Info>>我应该迭代每个项目并根据每个项目id应该调用另一个也是Single的请求然后映射到DetailInfo
因此有Single<List<DetailInfo>>

我发现flattenAsObservable和flattenAsFlowable, 我不确定是否使用它是正确的方法,如果是的话我收到Single<List<Single<DetailInfo>>的另一个问题,而我需要Single<List<DetailInfo>>

fun recipeInfos(id: Long) {
 return repository.recipeInfos(id)
  .flattenAsObservable { it ->
    it.map { it ->it.id }
  }.map { id ->repository.detail(id)
  .map { detailInfo -> detailInfo.toModel() }}
  .toList()
}

1 个答案:

答案 0 :(得分:0)

我刚刚将.map { id ->repository.detail(id)更改为

.flatMap { id ->repository.detail(id)}

并且有效