append

Emite todos los valores de la fuente y, al final, un valor extra.

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)

Lección

append es la forma más sencilla de pegar un único valor final a una secuencia perezosa sin materializar nada: se limita a emitir toda la fuente y luego emite a una vez que la fuente se ha agotado. Como la fuente solo se consume cuando se tira de ella, esto funciona bien incluso si calcularla es costoso — el valor extra es de verdad lo último que se produce.

En el lado asíncrono, a puede ser a su vez un Future: appendAsync lo espera solo cuando la fuente de aguas arriba ha terminado, así que un valor de «cierre» lento no bloquea nada antes de tiempo.

Demo 1 · Fundamentos

Demo 2 · Asíncrono, con un valor futuro

Pruébalo tú

Ejercicio: añade 'cool' al final de los pasos.

Relacionado: prepend — añade un valor al principio en su lugar · concat — une dos iterables completos · reverse