dropWhile<T>(source: Iterable<T> | AsyncIterable<T>,): AsyncIterableIterator<T>
Drops elements from the beginning of an async iterable as long as a specified condition is met, and yields the remaining elements.
import { dropWhile } from "./drop.ts"; async function* gen() { yield "foo"; yield "bar"; yield "baz"; yield "qux" } const iterable = dropWhile(gen(), v => v !== "baz"); for await (const value of iterable) { console.log(value); }
The above example will print the following 2 lines:
baz qux
An async predicate function also works. The following example will print
the same 2 lines as the previous example:
import { dropWhile } from "./drop.ts"; async function* gen() { yield "foo"; yield "bar"; yield "baz"; yield "qux" } const iterable = dropWhile(gen(), v => Promise.resolve(v !== "baz")); for await (const value of iterable) { console.log(value); }
A predicate function can take an index as well as the value.
import { dropWhile } from "./drop.ts"; async function* gen() { yield "foo"; yield "bar"; yield "baz"; yield "qux" } const iterable = dropWhile(gen(), (_, i) => i % 2 === 0); for await (const value of iterable) { console.log(value); }
The above example will print the following 3 lines:
bar baz qux
The async iterable to drop elements from. It can be either finite or infinite.
AsyncIterableIterator<T>
An async iterable that contains elements from the source iterable
that occur that and after the element at which the predicate first
fails.