groupsBy
열리는 대로의 살아 있는 그룹: 키, 그리고 그 키를 공유하는 이후 값의 내부 스트림.
강의
풀 레이어의 groupBy는
터미널입니다: 전부를 당기고 Map을 건넵니다.
groupsBy는 살아 있는 버전입니다. 각 키의 첫 값이
GroupedEvents를 내보냅니다 — 그 key와
내부 events 스트림의 레코드 — 그리고 같은 키의 이후
값은 그 내부로 전달됩니다. 그룹은 소스가 닫힌 뒤가 아니라, 열리는
대로 처음 본 키 순서로 나타납니다.
그것은 중첩된 FxEvents 아이디어로
window*와 같고, 시간이
아니라 값으로 키를 답니다. 위젯은 그룹이 나타나는 순간 그 내부에
구독해 이후 값이 도착하는 대로 볼 수 있고, 묶음을 기다릴 필요가
없습니다.
lastFor가 있으면, lastFor(key)의 첫
이벤트(또는 완료)가 그 그룹을 완료합니다. 같은
키의 이후 값은 새 그룹을 엽니다 — 사용자마다의 유휴 타임아웃,
방마다의 "세션 종료" 신호. lastFor가 없으면 그룹은
소스가 완료될 때까지 (또는 에러가 날 때까지 — 살아 있는 그룹마다
에러를 낸 뒤 바깥에) 열려 있습니다.
바깥을 취소하면 살아 있는 그룹은 조용히 완료됩니다. window 가족이
따르는 것과 같은 RxJS 9 규칙입니다. fxdart 이벤트 레이어, Rx의
groupBy를 따랐습니다.
데모 1 · 열리는 대로의 그룹
데모 2 · lastFor로 그룹 닫기
직접 해 보기
연습: SKU를 부서 접두사로 묶기.