【发布时间】:2017-11-11 23:18:17
【问题描述】:
我仍在尝试了解响应式编程,并尝试使用 RxJava2 创建一个链。创建订单时的逻辑如下(伪代码)。
void createOrder {
R r1 = null, r2 = null, r3 = null;
Order order = null;
if (condition1) {
then r1 = new R();
} else if (condition2) {
then r2 = new R();
}
if (condition3) {
then r3 = new R();
}
if (r1 not null) {
if (r3 not null) {
create order with r1 + r3
} else {
create order with r1
}
} else if (r2 not null) {
if (r3 not null) {
create order with r2 + r3
} else {
create order with r2
}
} else {
fail creating an order
}
}
我已经创建了 4 个Singles 来完成创建 r1、r2、r3 和顺序的工作,但我不知道如何将所有这些链接在一起以按照上述逻辑构成整个序列。
我认为我们可以使用多个Maybes 进行if (condition) 检查,但不知道如何将它们与Singles 链接在一起以实现上述目的。
非常感谢您提供任何帮助。
【问题讨论】:
-
r1、r2、r3 是什么意思?您需要提供有关您正在尝试执行的操作的更多信息。
-
它们是简单的 Java 对象。基本上,if 检查是基于创建对象 r1、r2、r3 的各种条件检查(如上所示)
-
r1、r2、r3的创建应该是异步的吗?
-
可以,但需要在创建订单之前全部完成
-
这看起来像 FizzBuzz 问题,但使用的是 RxJava。不要想太多。