Rx java RXJava如何等待/插入子序列

Rx java RXJava如何等待/插入子序列,rx-java,Rx Java,我有一系列可以观察到的命令。命令按顺序执行。现在,其中一个命令必须在执行时动态创建第二个可观察命令序列。在第一个序列继续下一个可观察序列之前,必须完成第二个序列。 这看起来像git中的合并(0表示可观察的命令): 我使用concatEager()在一个序列中实现顺序执行。问题是当前执行看起来如下(=>订阅seq2后,它与seq1并行执行) 是否有办法在seq1的第四个可观察项中等待/阻止,直到seq2完成?或者在订阅seq1后进行合并?确保两个可观察到的等待在另一个完成后进行的唯一方法是通过me

我有一系列可以观察到的命令。命令按顺序执行。现在,其中一个命令必须在执行时动态创建第二个可观察命令序列。在第一个序列继续下一个可观察序列之前,必须完成第二个序列。 这看起来像git中的合并(0表示可观察的命令):

我使用concatEager()在一个序列中实现顺序执行。问题是当前执行看起来如下(=>订阅seq2后,它与seq1并行执行)


是否有办法在seq1的第四个可观察项中等待/阻止,直到seq2完成?或者在订阅seq1后进行合并?

确保两个可观察到的等待在另一个完成后进行的唯一方法是通过merge、zip或更好的concat

       @Test
public void testContact() {

    Observable.concat(Observable.just("Hello"),
                      Observable.just("reactive"),
                      Observable.just("world"))
              .subscribe(System.out::println);
}
看看合并运算符是如何工作的


使用
concatMap
。差不多

Observable.from(new Integer[]{ 0, 1, 2, 3, 4, 5})
          .concatMap( l -> {
            ArrayList<Integer> temp = new ArrayList<Integer>();
            temp.add(l);
            for (int i=0; i<l-1 ; i++) {
               temp.add(l);
            }
            return Observable.from(temp);
          })
Observable.from(新整数[]{0,1,2,3,4,5})
.concatMap(l->{
ArrayList temp=新的ArrayList();
温度添加(l);

对于(int i=0;问题是Seq1已订阅(),并且已发出其命令。发出的命令之一会创建第二个Seq2,需要将其合并到Seq1中,或阻止Seq1的进一步执行,直到完成为止。
       @Test
public void testContact() {

    Observable.concat(Observable.just("Hello"),
                      Observable.just("reactive"),
                      Observable.just("world"))
              .subscribe(System.out::println);
}
Observable.from(new Integer[]{ 0, 1, 2, 3, 4, 5})
          .concatMap( l -> {
            ArrayList<Integer> temp = new ArrayList<Integer>();
            temp.add(l);
            for (int i=0; i<l-1 ; i++) {
               temp.add(l);
            }
            return Observable.from(temp);
          })