dropUntil

Omite valores hasta que el predicado se cumple —el elemento coincidente también se descarta— y luego emite el resto.

Iterable<A> dropUntil<A>(bool Function(A a) f, Iterable<A> iterable) FxAsyncIterable<A> dropUntilAsync<A>(FutureOr<bool> Function(A a) f, FxAsyncIterable<A> iterable) Fx<T> Fx.dropUntil(bool Function(T a) f) // chain FxAsync<T> FxAsync.dropUntil(FutureOr<bool> Function(T a) f)

Lección

dropUntil es la contraparte del lado drop de takeUntilInclusive — y ambos tratan su elemento coincidente de forma opuesta. dropWhile deja de descartar justo antes del elemento que falla, y lo conserva en la salida; dropUntil se detiene en el elemento coincidente y lo descarta junto con todo lo anterior. Solo sobreviven los elementos estrictamente posteriores a la coincidencia.

Úsalo cuando un marcador o centinela debe desaparecer junto con el prefijo que delimita: «todo lo que va después de la línea READY, sin incluir el propio READY».

Demo 1 · Fundamentos

Compáralo con dropWhile: aquí el elemento coincidente (3 / 'STOP') no aparece en el resultado:

Demo 2 · Asíncrono

Pruébalo tú

Ejercicio: descarta todo hasta 'READY', incluido.

Relacionado: dropWhile — conserva el elemento coincidente · takeUntilInclusive — la contraparte del lado take · drop — descarta por número fijo