append
원본의 모든 값을 내보낸 다음, 마지막에 값 하나를 더 내보냅니다.
Iterable<A> append<A>(A a, Iterable<A> iterable)
FxAsyncIterable<A> appendAsync<A>(FutureOr<A> a, FxAsyncIterable<A> iterable)
Fx<T> Fx.append(T a) // chain
FxAsync<T> FxAsync.append(FutureOr<T> a)
강의
append는 아무것도 미리 만들어 두지 않고 지연 시퀀스 뒤에
값 하나를 붙이는 가장 단순한 방법입니다. 원본을 그대로 흘려보내다가
원본이 소진되면 a를 한 번 내보낼 뿐입니다. 원본은 값을
끌어당길 때만 소비되므로, 계산 비용이 큰 원본이어도 문제없이
동작합니다 — 추가된 값은 실제로 가장 마지막에 생성됩니다.
비동기 쪽에서는 a 자체가 Future일 수 있습니다.
appendAsync는 상류가 끝난 뒤에야 이를 await 하므로, 느린
"마무리" 값 때문에 앞단이 미리 붙잡히는 일이 없습니다.
데모 1 · 기본
데모 2 · 비동기, future 값과 함께
직접 해 보기
연습: steps 끝에 'cool'을 덧붙여 보세요.