【发布时间】:2015-12-10 06:34:22
【问题描述】:
只有在不存在具有相同电子邮件的用户时,我才想在我的数据库中插入一个新用户。
因此,我有两个 Observable: 第一个发送带有特定电子邮件的用户,或者在不发送任何内容的情况下完成。 第二个 Observable 插入一个新用户并返回这个新创建用户的 Object。
我的问题是,我不希望第一个 Observable(如果存在)发出的用户被传输到订阅者。相反,我想将其映射为 null)。
Observable<UserViewModel> observable =
checkAndReturnExistingUserObservable
.map(existingUser -> null)
.firstOrDefault(
insertAndReturnNewUserObservable
.map(insertedUser -> mMapper.map(insertedUser)
)
这是我尝试的最后一件事,但它在第二个映射运算符处显示“循环推理”。
总结一下。我只想在第一个完成为空的情况下执行第二个 Observable,但如果不是,我不想返回第一个发出的数据,而是我想返回 null。
非常感谢任何帮助。
【问题讨论】:
-
我有一个关于运算符的 anwser 用于正确发出您的对象。但是,我不太确定循环推理。您能否发布
insertAndReturnNewUserObservable和mMapper.map(...)的代码以确保安全。此外,恕我直言,返回 null 是一个非常糟糕的主意。但我会在看到你的代码后在我的答案中提供详细信息;)