evaluate<T> method
Future<FlagEvaluationResult<T> >
evaluate<T>({
- required String flagKey,
- required T defaultValue,
- required List<
FeatureProvider> providers, - required Future<
FlagEvaluationResult< evaluator(T> >- FeatureProvider provider
override
Implementation
@override
Future<FlagEvaluationResult<T>> evaluate<T>({
required String flagKey,
required T defaultValue,
required List<FeatureProvider> providers,
required Future<FlagEvaluationResult<T>> Function(FeatureProvider provider)
evaluator,
}) async {
FlagEvaluationResult<T>? firstError;
for (final provider in providers) {
final result = await evaluator(provider);
if (result.errorCode == null) {
return result;
}
if (result.errorCode != ErrorCode.FLAG_NOT_FOUND) {
firstError ??= result;
}
}
return firstError ??
FlagEvaluationResult.error(
flagKey,
defaultValue,
ErrorCode.FLAG_NOT_FOUND,
'Flag "$flagKey" was not found in any configured provider.',
evaluatorId: 'MultiProvider',
);
}