【问题标题】:How to collect 2 coroutine Flow<T>?如何收集 2 个协程 Flow<T>?
【发布时间】:2020-12-31 03:35:39
【问题描述】:

我有 2 个SharedFlow&lt;T&gt;s,我想对他们的最新排放采取行动。有一个 combine 运算符具有类似的效果,但我认为它不应该以这种方式使用,因为它不是终端运算符。请帮忙!

val flow1 = MutableSharedFlow<Int>()
val flow2 = MutableSharedFlow<Double>()
flow1.collect(flow2) { a, b ->
    //do something with a and b
}

【问题讨论】:

  • 欢迎来到 Stack Overflow。我认为你需要一个zip 运营商:blog.mindorks.com/…
  • 就像我说的那样,zip 和 combine 等运算符不是终端运算符。我想避免任何中间步骤。

标签: kotlin-coroutines


【解决方案1】:

您仍然需要收集组合流,例如:

val flow1 = MutableSharedFlow<Int>()
val flow2 = MutableSharedFlow<Double>()
flow1.combine(flow2) { a, b ->
    //do something with a and b
   a to b // for ex
}.collect{
 
}

更多信息请参见combine

【讨论】:

  • 谢谢,这是我最初的想法。也许这是唯一的出路。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2022-01-09
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
相关资源
最近更新 更多