为列表中的每个项创建可观察对象并合并其结果

时间:2018-06-06 14:19:31

标签: kotlin rx-java rx-java2

我有以下两个<style type="text/css"> .context-menu-icon.context-menu-icon-file-alt:before { font-family: FontAwesome !important; color: #2980B9; font-style: normal; font-weight: normal; font-size: 16px; left: 0; line-height: 1; position: absolute; text-align: center; top: 50%; transform: translateY(-50%); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; width: 28px; } .context-menu-icon.context-menu-icon-file-alt:before{ content: '\f15c'; } </style> 函数:

Single

我希望以导致fun getStrings(): Single<List<String>> { return Single.just(listOf("a", "a.b", "a.b.c")) } fun getStringParts(s: String): Single<List<String>> { return Single.just(s.split(".")) } 的方式组合它们,其中Map<String, List<String>是第一个函数的结果,key是每个函数的第二个函数的结果value,所以

String

我使用第一个函数,收到["a":["a"], "a.b":["a", "b"], "a.b.c":["a", "b", "c"]] List个,但无法绕过我的脑袋

  • 如何为String
  • 中的每个字符串创建一个observable
  • 将它们结合起来
  • 将其结果合并到List

2 个答案:

答案 0 :(得分:3)

getStrings()
       .flattenAsFlowable { it }
       .flatMapSingle { s -> getStringParts(s).map { parts -> s to parts } }
       .toMap({ it.first }, { it.second })

返回类型Single<MutableMap<String, List<String>>>

我希望一切都清楚,但如果你有一些疑问,请随时提出。

答案 1 :(得分:3)

`${BOLD}${process.env.npm_package_scripts_watch}:${NORM}`