Rx java 延迟可观测呼叫

Rx java 延迟可观测呼叫,rx-java,reactive-programming,rx-java2,Rx Java,Reactive Programming,Rx Java2,我有5个观测值 Observable<String> obs1 = getObs1(); Observable<String> obs2 = getObs2(); Observable<String> obs3 = getObs3(); Observable<String> obs4 = getObs4(); Observable<String> obs5 = getObs5(); 一旦我获得了obs6,我就需要使用obs1,obs2

我有5个观测值

Observable<String> obs1 = getObs1();
Observable<String> obs2 = getObs2();
Observable<String> obs3 = getObs3();
Observable<String> obs4 = getObs4();
Observable<String> obs5 = getObs5();
一旦我获得了
obs6
,我就需要使用
obs1
obs2
obs3
obs4
obs5
obs6
来获取
obs7


那么,我如何才能订阅两次
obs1
,一次订阅
obs5
,另一次订阅很抱歉,我不是Java开发人员,所以我会用c#给你答案-我希望没问题

就这么简单:

var query =
    from i1 in getObs1()
    from i2 in getObs2()
    from i3 in getObs3()
    from i4 in getObs4()
    from i5 in getObs5()
    from i6 in getObs6(i1, i2)
    from i7 in getObs7(i1, i2, i3, i4, i5, i6)
    select i7;
我使用以下代码对此进行了测试:

IObservable<int> getObs1() => Observable.Return(1);
IObservable<int> getObs2() => Observable.Return(2);
IObservable<int> getObs3() => Observable.Return(3);
IObservable<int> getObs4() => Observable.Return(4);
IObservable<int> getObs5() => Observable.Return(5);
IObservable<int> getObs6(int x, int y) => Observable.Return(x * y);
IObservable<int> getObs7(params int[] x) => Observable.Return(x.Aggregate((j, k) => j * k));
IObservable getObs1()=>Observable.Return(1);
IObservable getObs2()=>Observable.Return(2);
IObservable getObs3()=>Observable.Return(3);
IObservable getObs4()=>Observable.Return(4);
IObservable getObs5()=>Observable.Return(5);
IObservable getObs6(intx,inty)=>可观测返回(x*y);
IObservable getObs7(params int[]x)=>obbservable.Return(x.Aggregate((j,k)=>j*k));

我得到了
240

的正确答案,很抱歉我不是Java开发人员,所以我将用c#给你答案-我希望没问题

就这么简单:

var query =
    from i1 in getObs1()
    from i2 in getObs2()
    from i3 in getObs3()
    from i4 in getObs4()
    from i5 in getObs5()
    from i6 in getObs6(i1, i2)
    from i7 in getObs7(i1, i2, i3, i4, i5, i6)
    select i7;
我使用以下代码对此进行了测试:

IObservable<int> getObs1() => Observable.Return(1);
IObservable<int> getObs2() => Observable.Return(2);
IObservable<int> getObs3() => Observable.Return(3);
IObservable<int> getObs4() => Observable.Return(4);
IObservable<int> getObs5() => Observable.Return(5);
IObservable<int> getObs6(int x, int y) => Observable.Return(x * y);
IObservable<int> getObs7(params int[] x) => Observable.Return(x.Aggregate((j, k) => j * k));
IObservable getObs1()=>Observable.Return(1);
IObservable getObs2()=>Observable.Return(2);
IObservable getObs3()=>Observable.Return(3);
IObservable getObs4()=>Observable.Return(4);
IObservable getObs5()=>Observable.Return(5);
IObservable getObs6(intx,inty)=>可观测返回(x*y);
IObservable getObs7(params int[]x)=>obbservable.Return(x.Aggregate((j,k)=>j*k));
我得到了
240
的正确答案