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,
]) {
  if (_inFlight.containsKey(request)) {
    return _inFlight[request]!.split();
  }

  final splitter = StreamSplitter(forward!(request));

  _inFlight[request] = splitter;

  final closeSplitter = () {
    _inFlight.remove(request);

    splitter.close();
  };

  splitter.split().first.then(
        (e) => closeSplitter(),
        onError: (dynamic e) => closeSplitter(),
      );

  return splitter.split();
}