생성자
이벤트 체인의 콜드 생성자: 값 하나, 빈 종료, Future, 생성기, create 콜백 — 이미 가지고 있던 Stream을 감쌀 필요가 없습니다.
강의
fxEvents(stream)은 이미
가진 스트림을 감쌉니다. 이 생성자들은 스트림
그 자체입니다. 콜드로 유지됩니다: 감싸거나 이름
붙이는 것만으로는 아무것도 듣지 않고, 종결 연산자
(toList, head, listen)가
이벤트를 흐르게 합니다. 체인의 나머지가 지키는 것과 같은
정직함의 규칙입니다.
간단한 것부터입니다. FxEvents.value(x)는
x를 내보내고 닫습니다 — Rx의 of/just.
FxEvents.empty()는 아무것도 없이 닫습니다.
FxEvents.never()는 내보내지도 닫히지도 않습니다.
리슨은 취소될 때까지 멈추므로, 언급만 하고 데모는 하지
않습니다. fromFuture는 Future의 값(또는 에러)을
내보내고 닫습니다. Future는 리스너가 도착하기 전에는 관찰되지
않습니다. generate(initial, condition, iterate)는
조건이 성립하는 동안 initial, iterate(initial), …를
걷습니다 — 각 단계는 타이머 틱이라, 무한 생성기도 취소할 수
있습니다.
시간, 그다음 팩토리입니다. FxEvents.timer(delay)는
지연 뒤에 0을 내보내고 닫습니다.
every가 있으면 그 주기로 1, 2, …를
이어 갑니다. periodic은 끝나지 않는 시계입니다
(연산을 생략하면 틱 횟수) — 취소하세요.
toList하지 마세요. defer(factory)는
리슨마다 새 내부 스트림을 만듭니다 — 래퍼가 아니라 팩토리가; 체인
자체는 단일 구독으로 남습니다. using은 리슨에서
자원을 얻고, 그것을 미러링하고, 정확히 한 번 해제합니다 — 풀
쪽 using의 푸시 짝입니다.
fromPattern(add, remove)는 전형적인
on/off 다리입니다. 그리고
create(init)는 EventEmitter와 함께
init을 호출합니다: add,
addError, close, 그리고 정리를 위한
onCancel. init에서의 throw는 전달되고
스트림은 닫힙니다.
fxdart 이벤트 레이어, Rx의 of/just,
EMPTY, NEVER, from,
interval, timer, defer,
generate, fromEventPattern,
using, 그리고 Observable 생성자 /
create를 따랐습니다.
데모 1 · value, empty, generate
데모 2 · defer, 그리고 fromFuture
직접 해 보기
연습: 1, 2, 3을 내보낸 뒤 닫는 create.