resolveAll method
Completes once all Async dependencies associated with groupEntity
complete or any group if groupEntity
is null
.
Implementation
Resolvable<Unit> resolveAll({Entity? groupEntity = const DefaultEntity()}) {
UNSAFE:
return Resolvable(() {
var resolvables = registry.unsortedDependencies;
if (groupEntity != null) {
resolvables = resolvables.where((e) {
if (e.metadata.isSome()) {
return e.metadata.unwrap().groupEntity == groupEntity;
}
return false;
});
}
final values = resolvables.map((e) => e.value);
if (values.any((e) => e is Async)) {
return wait(
resolvables.map((e) => e.value.unwrap()),
(_) => resolveAll(groupEntity: groupEntity).toUnit().unwrap(),
);
}
return Unit();
});
}