(null이 없는) 두 스트림을 병합하여 쌍에 조건을 적용하는 방법
나에게 두 개의 데이터 스트림이 있다고 생각해 보십시오. 데이터 스트림을 병합하여 이 두 스트림 사이에 데이터 조건을 적용할 수 있는 방법이 있는가?예를 들면
Stream A : A, B, C, D....
Stream B : -, A, -, -....
Composed : (A,-),(B,A),(C,-),(D,-)....
rxjs를 사용하여 위에서 합성 스트림을 만드는 방법?나는 몇 가지 알림을 올리기 위해 합성된 스트림에 조건을 적용하고 싶다.또한 마지막으로 알려진 Null이 아닌 데이터를 사용할 수 있는가? 예를 들어 아래의 합성 스트림을 참조하십시오.
Stream A : A, B, C, D....
Stream B : 1, null, 2, null....
Composed : (A,1),(B,1),(C,2),(D,2)....
이제 막 반응하는 스트림 아이디어를 가지고 놀기 시작했으니, 반응하는 스트림이라는 생각을 잘못 이해했다면 수정해 주길 바란다.
당신의 제안에 도움이 될 수 있는 두 명의 운영자가 있다.
Zip:
RxJs에 대한 참조: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/zip.md
CompareLatest:
RxJs에 대한 참조: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/combinelatest.md
그 이미지들은 둘 사이의 차이점을 설명한다.이제 관측 가능한 값 중 하나가 null일 경우 필터링할 위치를 사용하여 필터링하면 되는 검색 가능 값을 병합한 경우
불행히도 두 연산자 모두 다음과 같은 동작을 취할 수 없다.
Stream A : A, B, C, D, E....
Stream B : 1, null, 2, null, 3....
Composed : (A,1),(B,1),(C,2),(D,2)....
Zip 및 Where(다음 이후 null 값 필터링)를 사용할 경우 결과는 다음과 같다.
Composed: (A,1),(C,2),(E,3)
Where(이전 null 값 필터링)와 Zip을 사용하면 다음과 같은 결과가 된다.
Composed: (A,1),(B,2),(C,3)
ComponyLatest를 사용하는 경우 스트림에서 이벤트가 발생하는 순서와 물론 이벤트를 저장할 위치에 따라 달라진다.where
연산자, 결과는 다음과 같이 표시된 것과 다를 수 있다.
Stream A : A, B, C, D....
Stream B : 1, null, 2, null....
Composed : (A,1),(B,1),(C,1),(C,2),(D,2).... // OR
Composed : (A,1),(B,1),(B,2),(C,2),(D,2)....
더 구체적인 요구사항이 없는 한, 내가 언급했던 옵션 중 하나는 당신이 찾고 있는 것이라고 생각하는데, 얼마든지 정보를 추가하십시오.
관측 가능한 구성 방법에는 몇 가지가 있지만 언급되지 않은 다른 운영자는 다음과 같다.
- differentLengthChanged는 구성의 마지막 부분에 키 선택기 기능을 사용하여 zip 또는 최신 값의 일부만 제한하도록 추가할 수 있다.
- 스위치, 다른 내부에서 관측 가능한 하나를 결합하는 데 사용된다.
'programing' 카테고리의 다른 글
Python에서 XPath를 사용하는 방법? (0) | 2022.03.24 |
---|---|
가져오기 경로 내부의 @는 무엇을 의미하나? (0) | 2022.03.23 |
NoneType을 python에서 "테스트"하는 방법? (0) | 2022.03.23 |
각도 주입식 장식기 - 인수가 0인 것으로 예상되지만 1개임 (0) | 2022.03.23 |
Vue.js - 중첩된 데이터를 올바르게 감시하는 방법 (0) | 2022.03.23 |