반응형
관찰 가능 소스가 방출되지만 최신 값만 사용할 때 관찰 가능한 다른 관찰 가능 소스로 전환하는 방법
나는 두개의 관찰력이 있다.
load$
시작 시 또는 다시 로드 버튼을 클릭했을 때 발생하는 로드 이벤트 스트림selection$
선택한 목록 항목의 스트림이며, 목록 항목을 선택할 때 내보냄
A가 내보내는 최신 값을 받을 수 있는 교환원이 있는지 궁금하다.selection$
언제든지load$
방출하는 동안 (B)가 방출하는 값을 무시하는 동안load$
.
을 사용하여 (A)를 성취할 수 있었다.withLatestFrom
하지만 그것은 만족스럽지 못하다 (B)withLatestFrom
관측 가능한 근원을 무시하지 않는다.
load$.withLatestFrom(selection$).subscribe(([_, latestSelection) => {
// _ is not needed and I don't like to write code like this
// I only need the latest selection
});
나는 본 적이 있다.switchMapTo
(B)를 만족하지만 (A)를 충족하지 않고 (A)도 사용하지 않음first()
또는take(1)
.
load$.switchMapTo(selection$.take(1)).subscribe(latestSelection => {
// I would like to avoid having to use take(1)
});
가정적인 걸 찾고 있는데switchMapToLatestFrom
교환원의
load$.switchMapToLatestFrom(selection$).subscribe(latestSelection => {
// switchMapToLatestFrom doesn't exist :(
});
불행히도 그것은 존재하지 않고 나는 내가 생각해낸 다른 두 가지 방법이 마음에 들지 않는다. 왜냐하면 왜 코드에 그 코드가 들어있는지 바로 알 수 없기 때문이다.take(1)
또는 사용되지 않는 인수.
새로운 관측 가능이 첫 번째 관측 가능이 방출될 때마다 두 번째 관측 가능에서 가장 최근의 값만 방출하도록 두 관측 가능을 결합하는 다른 방법이 있는가?
withLatestFrom
선택권이 있다.project
값을 통과한 기능.
값을 무시하는 데 사용할 수 있음load$
최신 선택 항목만 발표:
load$
.withLatestFrom(selection$, (load, selection) => selection)
.subscribe(selection => {
// ...
});
"샘플" 연산자를 사용하는 경우:
selection$.pipe(sample(load$)).subscribe(
// the code you want to run
)
반응형
'Programing' 카테고리의 다른 글
반응-원호 연결 AddEventListener가 작동하지 않음 (0) | 2022.04.03 |
---|---|
Vuejs3 : 다음 Vue-router-next의 louer.js로 "transition"을 렌더링하려면 어떻게 해야 하는가? (0) | 2022.04.03 |
Fabric.js를 React와 함께 사용하는 방법 (0) | 2022.04.03 |
vuex에서 스토어 값을 보는 방법? (0) | 2022.04.03 |
정적 인덱스.html 파일에서 react-router BrowserRouter를 사용하는 방법 (0) | 2022.04.03 |