refreshState method

Future<void> refreshState({
  1. required FutureOr onRefresh(),
  2. FutureOr onError(
    1. Object e,
    2. StackTrace stackTrace
    )?,
  3. bool isThrowOnError = true,
})

GeneralLibraryFlutter

Implementation

Future<void> refreshState({
  required FutureOr<dynamic> Function() onRefresh,
  FutureOr<dynamic> Function(Object e, StackTrace stackTrace)? onError,
  bool isThrowOnError = true,
}) async {
  if (isLoading) {
    return;
  }

  setState(() {
    isLoading = true;
  });
  await Future(() async {
    try {
      await onRefresh();
    } catch (e, stack) {
      if (isThrowOnError) {
        rethrow;
      }
      // ignore: non_constant_identifier_names
      final on_error = onError;
      if (on_error != null) {
        try {
          await on_error(e, stack);
        } catch (e) {}
        return;
      }
    }
  });
  setState(() {
    isLoading = false;
  });
}