FLimitExtensions extension

Extension methods for FLimit

Provides additional functionality like concurrent mapping, filtering, iteration, and idle detection.

Example:

final limit = fLimit(2);

// Map items concurrently
final items = [1, 2, 3, 4, 5];
final results = await limit.map(items, (i) async => i * 2);

// Wait for all tasks to complete
await limit.onIdle;
print('All done!');
on

Methods

filter<Item>(Iterable<Item> items, Future<bool> predicate(Item item), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<List<Item>>

Available on FLimit, provided by the FLimitExtensions extension

Filters items concurrently using the predicate function.
forEach<Item>(Iterable<Item> items, Future<void> action(Item item), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<void>

Available on FLimit, provided by the FLimitExtensions extension

Executes action for each item in items concurrently with the concurrency limit.
forEachSettled<Item>(Iterable<Item> items, Future<void> action(Item item), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<List<SettledResult<void>>>

Available on FLimit, provided by the FLimitExtensions extension

Executes action for each item and returns settled outcomes.
map<Item, Result>(Iterable<Item> items, Future<Result> mapper(Item item), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<List<Result>>

Available on FLimit, provided by the FLimitExtensions extension

Maps the items to futures using the mapper function, respecting the concurrency limit.
mapIndexed<Item, Result>(Iterable<Item> items, Future<Result> mapper(int index, Item item), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<List<Result>>

Available on FLimit, provided by the FLimitExtensions extension

Executes tasks and collects results with their indices.
mapSettled<Item, Result>(Iterable<Item> items, Future<Result> mapper(Item item), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<List<SettledResult<Result>>>

Available on FLimit, provided by the FLimitExtensions extension

Maps items and captures both successes and failures without throwing.
reduce<Item>(Iterable<Item> items, Future<Item> combine(Item a, Item b), {int priority = 0, Duration? timeout, RetryPolicy? retry, TaskTimeouts? timeouts}) → Future<Item>

Available on FLimit, provided by the FLimitExtensions extension

Reduces items to a single value using combine function.