concat
Emite perezosamente todo el primer iterable y, a continuación, todo el segundo.
Lección
concat encadena dos iterables uno detrás de otro sin copiar
ninguno de los dos a una lista nueva. Es totalmente perezoso por ambos lados:
el segundo iterable ni se toca mientras el pipeline no tire de valores más
allá del final del primero — así que concatenar una primera fuente costosa
o infinita con una segunda es seguro siempre que no pidas más de lo que
tiene la primera.
concatAsync es transparente, igual que las primas asíncronas de
take y concat: no serializa ninguno de los dos
lados internamente, así que un concurrent(n) aguas abajo
sigue pudiendo solapar las peticiones contra el lado que esté activo
en ese momento.
Demo 1 · Fundamentos & pereza
El segundo iterable es un generador con un efecto secundario — fíjate en
que nunca llega a ejecutarse, porque take(2) se satisface solo
con la primera lista:
Demo 2 · Asíncrono
Pruébalo tú
Ejercicio: concatena morning y evening
en una sola agenda.