request method

  1. @override
Stream<Response> request(
  1. Request request, [
  2. NextLink? forward
])

A function called when a request reaches this Link

Implementation

@override
Stream<Response> request(Request request, [NextLink? forward]) async* {
  final stopWatch = Stopwatch()..start();

  _logRequest(request);

  try {
    await for (final response in forward!(request)) {
      _logResponse(request, response, stopWatch.elapsedMilliseconds);
      yield response;
    }
  } catch (exception, stackTrace) {
    stopWatch.stop();

    //Log Error.
    _logError(request, exception, stopWatch.elapsedMilliseconds, stackTrace);
    rethrow;
  }
}