最近在研究 Spring 家的 Reactor 3 (该库也由 Rxjava 的贡献者编写),据文档说是回调地域的终结者。
但是,有一个场景,这种响应式编程却很难写出回调的一种效果。就是下层 隔代获取 上游数据的引用。
在回调里面:
a -> 获取到 obj A
then -> 获取到 obj B
then -> 获取到 obj C
then -> 全部成功,执行 function (A, B, C)
回调的写法可以一次性拿到所有上游数据的引用
然而在响应式编程里面却没有什么好办法。我想的只能是转成一个列表
a -> 获取到 obj A,加到列表
b -> 获取到 obj B, 加到列表
c -> 获取到 obj C, 加到列表
d -> do(A,B,C)
不过显然这样写没有什么意义,而且是很不优雅的写法。
我在 https://stackoverflow.com/questions/28176072/in-rxjava-how-to-pass-a-variable-along-when-chaining-observables 看到也有人在讨论,不过解答显然也谈不上优雅
但是,有一个场景,这种响应式编程却很难写出回调的一种效果。就是下层 隔代获取 上游数据的引用。
在回调里面:
a -> 获取到 obj A
then -> 获取到 obj B
then -> 获取到 obj C
then -> 全部成功,执行 function (A, B, C)
回调的写法可以一次性拿到所有上游数据的引用
然而在响应式编程里面却没有什么好办法。我想的只能是转成一个列表
a -> 获取到 obj A,加到列表
b -> 获取到 obj B, 加到列表
c -> 获取到 obj C, 加到列表
d -> do(A,B,C)
不过显然这样写没有什么意义,而且是很不优雅的写法。
我在 https://stackoverflow.com/questions/28176072/in-rxjava-how-to-pass-a-variable-along-when-chaining-observables 看到也有人在讨论,不过解答显然也谈不上优雅