takeWhile method
Returns a lazy iterable of the leading elements satisfying test
.
The filtering happens lazily. Every new iterator of the returned
iterable starts iterating over the elements of this
.
The elements can be computed by stepping through iterator
until an
element is found where test(element)
is false. At that point,
the returned iterable stops (its moveNext()
returns false).
Implementation
S takeWhile(bool Function(T) test,
[TotalCountResolver totalCountResolver = _defaultResolver]) {
var oldLength = state.items.length;
var newData = state.items.takeWhile(test);
return state.copyWith(
items: newData,
totalCount:
totalCountResolver(state.totalCount, diff(oldLength, newData.length)),
);
}