Rüd*_*ulz 1 reactive-programming kotlin project-reactor
当我链接多个zipWhen调用时,结果将是 aTuble2<Tuple2<Foo, Bar>, Bam>而不是 a Tuple3<Foo, Bar, Bam>。随后的每一次这种情况都会变得更糟zipWhen。
例子:
val getFoo()
.zipWhen { foo ->
getBar(foo)
}
.zipWhen { fooBar ->
getBam(fooBar.t1, fooBar.t2)
}
.doOnNext { fooBarBam ->
log.debug { "foo: ${fooBarBam.t1.t1}" }
log.debug { "bar: ${fooBarBam.t1.t2}" }
log.debug { "bam: ${fooBarBam.t2}" }
}
Run Code Online (Sandbox Code Playgroud)
获取 doOnNext 的最优雅且可重用的方法是什么Tubple3?
您可以做的是将zipWhen 与组合器一起使用,例如:
getFoo()
.zipWhen {foo -> getBar(foo) }
.zipWhen({ t -> getBam(t.t1, t.t2) }, {a, b -> Tuples.of(a.t1, a.t2, b)})
.doOnNext { fooBarBam ->
log.debug { "foo: ${fooBarBam.t1}" }
log.debug { "bar: ${fooBarBam.t2}" }
log.debug { "bam: ${fooBarBam.t3}" }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |