Rxjs 在另一个可观察对象发射其第一项后开始发射

Rxjs 在另一个可观察对象发射其第一项后开始发射,rxjs,rx-java,observable,rx-java2,reactivex,Rxjs,Rx Java,Observable,Rx Java2,Reactivex,我有一个简单的用例,我似乎无法理解 给定2个可观测值,A和B A在B发射其第一个项目后开始发射项目,B可以继续发射项目,这将不再影响A 我需要这个,因为A需要B发出的第一个值来开始发出 我试过skipUntil和startWith都没用 我想我可以帮你做你想做的事: 可观测A可观测B{ 返回B.take1.flatmappb->{ /*在这里用可观察的实现替换*/ 行为主体A=行为主体.create; 返回主题a; }; } 此方法返回一个可观察A,只有在使用可观察B发出的第一个值初始化后,它才

我有一个简单的用例,我似乎无法理解

给定2个可观测值,A和B

A在B发射其第一个项目后开始发射项目,B可以继续发射项目,这将不再影响A

我需要这个,因为A需要B发出的第一个值来开始发出

我试过skipUntil和startWith都没用

我想我可以帮你做你想做的事:

可观测A可观测B{ 返回B.take1.flatmappb->{ /*在这里用可观察的实现替换*/ 行为主体A=行为主体.create; 返回主题a; }; } 此方法返回一个可观察A,只有在使用可观察B发出的第一个值初始化后,它才会开始发出。我认为可以帮助您执行您想要的操作:

可观测A可观测B{ 返回B.take1.flatmappb->{ /*在这里用可观察的实现替换*/ 行为主体A=行为主体.create; 返回主题a; }; }
此方法返回一个可观察A,它只有在用可观察B发出的第一个值初始化后才开始发射。

这是可行的,顺便问一下,如果有2个或更多的可观察A取决于B第一次发射的结果,您会怎么做?只要复制代码并用C,D,E替换A…?@Linxy是的,你可以复制代码。我也遇到过类似的情况,我需要很多方法,这些方法都依赖于来自可观察对象的初始化数据。我创建了一个方法getInit,它返回初始化可观察值,基本上返回上面的B.take1,然后其他依赖方法基本上返回getInit.flatMap。。。。所以,同样的模式,他们只是使用一个方法来获取init Observable,而不是让它传入。这可能更多地取决于你如何使用每个观测值的细节。这是可行的,顺便问一下,如果你有2个或更多的观测值,取决于B的第一次发射的结果,你会怎么做?只要复制代码并用C,D,E替换A…?@Linxy是的,你可以复制代码。我也遇到过类似的情况,我需要很多方法,这些方法都依赖于来自可观察对象的初始化数据。我创建了一个方法getInit,它返回初始化可观察值,基本上返回上面的B.take1,然后其他依赖方法基本上返回getInit.flatMap。。。。所以,同样的模式,他们只是使用一个方法来获取init Observable,而不是让它传入。这可能更多地取决于你如何使用每一个观测值的细节。