advancedFutureHandler<T> static method

Future<AdvancedFutureHandlerResult<T>> advancedFutureHandler<T>(
  1. Future<T> future, {
  2. Duration? timeout,
})

Implementation

static Future<AdvancedFutureHandlerResult<T>> advancedFutureHandler<T>(
  Future<T> future, {
  Duration? timeout,
}) async {
  final startTime = DateTime.now().millisecondsSinceEpoch;

  try {
    final result = timeout != null
        ? await _timeoutFuture(future, timeout)
        : await future;
    final endTime = DateTime.now().millisecondsSinceEpoch;

    return AdvancedFutureHandlerResult(
        result: result, duration: (endTime - startTime) / 1000.0);
  } on TimeoutException catch (error) {
    print(error);
    rethrow;
  } catch (error) {
    print(error);
    rethrow;
  }
}