futures<T> function
Widget
futures<T>(
- BuildContext context, {
- required Iterable<
FutureOr< waitFor,T> ?> - String? observerName,
- String? debugName,
- bool sliver = false,
- bool awaitAll = false,
- required Widget builder(
- BuildContext context,
- List<
T> ? resolved
- Widget errorBuilder(
- BuildContext context,
- dynamic error
- Widget spinner(
- BuildContext context
Shorthand for FutureBuilder - waits for multiple futures
Implementation
Widget futures<T>(BuildContext context,
{required Iterable<FutureOr<T>?> waitFor,
String? observerName,
String? debugName,
bool sliver = false,
bool awaitAll = false,
required Widget builder(BuildContext context, List<T>? resolved),
Widget errorBuilder(BuildContext context, error)?,
Widget spinner(BuildContext context)?}) {
return future<List<T>>(
context,
key: debugName,
waitFor: Future.wait<T>(
waitFor.mapIndexed(((o, idx) => Future.value(o).then((_) {
_log.info("$debugName: completed $idx");
return _;
})) as Future<T> Function(FutureOr<T>?, int)),
eagerError: true),
sliver: sliver,
observerName: observerName,
builder: (context, resolved) {
_log.finer(
"futures: of ${uncapitalize(resolved?.runtimeType.toString() ?? "null")} changed");
return builder(context, resolved);
},
errorBuilder: errorBuilder,
spinner: spinner,
);
}