withLatestFrom
소스 이벤트가 올 때마다, 그 이벤트와 다른 스트림의 최신 값에 대한 combine 결과를 내보냅니다 — 다른 쪽은 트리거가 아니라 컨텍스트입니다.
강의
요청이 발화하면 바로 그 순간 유효했던 설정 버전을 함께
실어야 합니다. 주문이 들어오면 지금 이 순간의 환율로 가격을
매겨야 합니다. 두 스트림이 관여하지만 둘은 대등하지 않습니다:
한쪽이 이끌고, 다른 쪽은 참조됩니다.
withLatestFrom(other, combine)이 그 비대칭을
표현합니다 — 각 소스 이벤트는
combine(event, latestOfOther)를 내보내고,
other의 이벤트는 기억된 값을 갱신할 뿐
아무것도 내보내지 않습니다.
이 한쪽 방향성이 양쪽 모두 트리거하는
combineLatest와의 차이
전부입니다. 이렇게 물어서 고르세요: 설정 갱신이 그 자체로
출력을 만들어야 하나요? 그렇다면 combineLatest, 설정이
요청이 마침 발화할 때에만 의미가 있다면
withLatestFrom입니다.
가장자리를 솔직하게 짚어 둡니다. other가 아직 아무것도
만들어 내기 전에 발화한 소스 이벤트는 버려집니다 —
도장 찍을 최신 값이 없기 때문입니다(그 손실이 곤란하다면
other에 startWith 시드를 주세요). 수명은
소스를 따릅니다: 소스가 닫히면 체인이 닫히고, other의
닫힘은 그냥 무시됩니다 — 컨텍스트 쪽의 라이브 피드가 파이프라인을
붙들어 두는 일은 없습니다. fxdart 이벤트 계층이며, Rx의 같은 이름
연산자를 따랐습니다.
데모 1 · 요청에 현재 설정 도장 찍기
데모 2 · 다른 쪽은 트리거하지도, 막지도 않는다
직접 해 보기
연습: 각 주문을 그 순간의 환율로 가격 매기기.
combineLatest — 양쪽 모두 트리거 ·
sampleOn — 결합 없이 트리거-와-최신 아이디어 ·
fxEvents — 컨텍스트 쪽에 시드를 주는 startWith