관찰 가능한 다른 최신 항목을 가져 오는 RxJava zip

Hohenheim

zip관찰 가능한 소스 중 하나가 데이터를 방출 할 때 다른 관찰 가능 항목이 데이터를 방출 할 때까지 기다리지 않고 최근에 방출 된 데이터가있는 경우 가져 오기를 원합니다 .

obs1 --true-|->
obs2 --true-|->  
obs3 --1-2-3-4->

zip은 TriFunctionwith 매개 변수를 실행해야합니다.

true, true, 1
true, true, 2
true, true, 3
true, true, 4

내 질문이 이해되기를 바랍니다.

확장 된 질문

나는 이미 문제의 일부를 해결했고 여러분들에게 또 다른 문제가 있습니다. obs1그리고 obs2하나 방출합니다 비싼 작업이다 true또는 false. 내가 필요한 것은 모든 방출 obs3에서 재실행해야 obs1하거나 obs2둘 중 하나가 false이전 방출 에서 방출되는지 여부 입니다. 내가 위에 쓴 것은 최상의 경우 둘 다 obs1obs2를 방출 true의 첫번째 방출에 obs3.

-------1------------2-----------------3------------->
---true/false---true/re-execute---true/re-execute--->
---true/false---true/re-execute---true/re-execute--->

편집"중" 확장 문제에 오해의 소지가있다.

내가 의미하는 것은 obs1이전 방출에서 거짓 이면 obs1. obs2이전 방출에서 거짓 이면 obs2. 둘 중 하나가이면 둘 다 다시 실행하지 마십시오 false.

Akarnokd

편집 : 확장 된 질문은 다른 연산자가 필요한 완전히 다른 문제입니다. 예를 들면 다음과 같습니다.

Observable<Boolean> obs1 = ...
Observable<Boolean> obs2 = ...

Observable<Integer> obs3 = ...

Function3<Integer, Boolean, Boolean> func = ...

// store last result of obs1 and obs2
boolean[] lastResults = { false, false };

// for each main value
obs3.concatMap(v -> {
    // if any of the previous results were false
    if (!lastResults[0] || !lastResults[1]) {
        // run both obs1 and obs2 again
        return Observable.zip(obs1, obs2, (a, b) -> {
            // save their latest results
            lastResult[0] = a;
            lastResult[1] = b;
            // apply the function to get the output
            return func(v, a, b);
        });
    }
    // otherwise call the function with true
    return Observable.just(func.apply(v, true, true));
})
.subscribe(...);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

RxJava는 두 개의 관찰 가능 항목과 다른 항목을 비교합니다 (java 7)

분류에서Dev

RxJava는 항목 목록에 대해 관찰 가능한 체인을 만듭니다.

분류에서Dev

Vert.x-RxJava-zip 관찰 가능 항목

분류에서Dev

RxJava는 여러 관찰 가능 항목을 결합한 후 모든 작업을 수행합니다.

분류에서Dev

RxJava는 두 가지 유형의 관찰 가능 항목을 세 번째 유형의 관찰 항목으로 결합합니다.

분류에서Dev

관찰 가능한 배열의 한 항목을 해당 배열의 다른 항목을 변경하는 방법

분류에서Dev

소스 관찰 가능 항목이 새 이벤트를 생성 할 때마다 'n'개의 최신 항목을 목록으로 내보내는 Rx 연산자

분류에서Dev

여러 관찰 가능 항목을 결합하는 RxJava 탄력적 인 방법

분류에서Dev

RxJava : 첫 번째 관찰 가능 항목이 오류를 던지고 첫 번째 항목부터 반복되는 경우에만 두 번째 관찰 가능 항목을 실행합니다.

분류에서Dev

다음 항목이 이전 항목에 종속 될 때 여러 RxJava 관찰 가능 항목을 연결하는 방법은 무엇입니까?

분류에서Dev

RxJava : 다른 관찰 가능한 결과를 기다립니다.

분류에서Dev

RX는 여러 관찰 가능 항목을 병합합니다.

분류에서Dev

RxJava - 관찰 가능한 목록을 압축

분류에서Dev

두 개의 관찰 가능한 항목을 두 개의 초기 관찰 가능한 값의 매핑 된 값으로 다른 관찰 가능한 개체로 변환하는 방법은 무엇입니까?

분류에서Dev

관찰 가능한 스트림에서 처음 n 개 항목을 처리하고 다른 항목 하나를 다르게 유지하는 방법

분류에서Dev

Rxjava 핸들 체인 된 관찰 가능한 오류

분류에서Dev

RxSwift는 Zip 연산자에서 관찰 가능합니다.

분류에서Dev

다운로드로 관찰 가능한 RxJava 체인

분류에서Dev

Android RxJava 및 관찰 가능 항목 연결

분류에서Dev

RxJava에서 여러 관찰 가능 항목 결합

분류에서Dev

Python 가져 오기는 최신 기능을 가져 오지 않습니다.

분류에서Dev

다른 컨텍스트와 함께 계산 된 관찰 가능 항목을 사용하는 실제 예제

분류에서Dev

angular rxjs는 첫 번째 관찰 가능 항목이 null 인 경우 두 번째 관찰 가능 항목을 온적으로 구독합니다.

분류에서Dev

RxJava에서 관찰 가능한 함께 콜백을 교체

분류에서Dev

여러 관찰 가능 항목을 결합하는 Rxswift 이상한 동작

분류에서Dev

다른 관찰 가능 항목에서 Rxjs 스트림 전환

분류에서Dev

관찰 가능한 구독을 다른 관찰 가능한 구독 내에 중첩해도됩니까?

분류에서Dev

RxJava는 체인 네트워크 요청에서 이전에 관찰 가능한 결과를 얻습니다.

분류에서Dev

MobX 관찰 가능 항목 변경이 관찰자 구성 요소 렌더링을 항상 트리거하지는 않습니다.

Related 관련 기사

  1. 1

    RxJava는 두 개의 관찰 가능 항목과 다른 항목을 비교합니다 (java 7)

  2. 2

    RxJava는 항목 목록에 대해 관찰 가능한 체인을 만듭니다.

  3. 3

    Vert.x-RxJava-zip 관찰 가능 항목

  4. 4

    RxJava는 여러 관찰 가능 항목을 결합한 후 모든 작업을 수행합니다.

  5. 5

    RxJava는 두 가지 유형의 관찰 가능 항목을 세 번째 유형의 관찰 항목으로 결합합니다.

  6. 6

    관찰 가능한 배열의 한 항목을 해당 배열의 다른 항목을 변경하는 방법

  7. 7

    소스 관찰 가능 항목이 새 이벤트를 생성 할 때마다 'n'개의 최신 항목을 목록으로 내보내는 Rx 연산자

  8. 8

    여러 관찰 가능 항목을 결합하는 RxJava 탄력적 인 방법

  9. 9

    RxJava : 첫 번째 관찰 가능 항목이 오류를 던지고 첫 번째 항목부터 반복되는 경우에만 두 번째 관찰 가능 항목을 실행합니다.

  10. 10

    다음 항목이 이전 항목에 종속 될 때 여러 RxJava 관찰 가능 항목을 연결하는 방법은 무엇입니까?

  11. 11

    RxJava : 다른 관찰 가능한 결과를 기다립니다.

  12. 12

    RX는 여러 관찰 가능 항목을 병합합니다.

  13. 13

    RxJava - 관찰 가능한 목록을 압축

  14. 14

    두 개의 관찰 가능한 항목을 두 개의 초기 관찰 가능한 값의 매핑 된 값으로 다른 관찰 가능한 개체로 변환하는 방법은 무엇입니까?

  15. 15

    관찰 가능한 스트림에서 처음 n 개 항목을 처리하고 다른 항목 하나를 다르게 유지하는 방법

  16. 16

    Rxjava 핸들 체인 된 관찰 가능한 오류

  17. 17

    RxSwift는 Zip 연산자에서 관찰 가능합니다.

  18. 18

    다운로드로 관찰 가능한 RxJava 체인

  19. 19

    Android RxJava 및 관찰 가능 항목 연결

  20. 20

    RxJava에서 여러 관찰 가능 항목 결합

  21. 21

    Python 가져 오기는 최신 기능을 가져 오지 않습니다.

  22. 22

    다른 컨텍스트와 함께 계산 된 관찰 가능 항목을 사용하는 실제 예제

  23. 23

    angular rxjs는 첫 번째 관찰 가능 항목이 null 인 경우 두 번째 관찰 가능 항목을 온적으로 구독합니다.

  24. 24

    RxJava에서 관찰 가능한 함께 콜백을 교체

  25. 25

    여러 관찰 가능 항목을 결합하는 Rxswift 이상한 동작

  26. 26

    다른 관찰 가능 항목에서 Rxjs 스트림 전환

  27. 27

    관찰 가능한 구독을 다른 관찰 가능한 구독 내에 중첩해도됩니까?

  28. 28

    RxJava는 체인 네트워크 요청에서 이전에 관찰 가능한 결과를 얻습니다.

  29. 29

    MobX 관찰 가능 항목 변경이 관찰자 구성 요소 렌더링을 항상 트리거하지는 않습니다.

뜨겁다태그

보관