stallUntilAborted function
Never answers, so only completing request's abort trigger, which
surfaces as a RequestAbortedException, ends the request.
A request that is not Abortable stalls forever.
Implementation
@visibleForTesting
Future<StreamedResponse> stallUntilAborted(BaseRequest request) {
final completer = Completer<StreamedResponse>();
if (request is Abortable) {
final abortTrigger = request.abortTrigger;
unawaited(
abortTrigger?.then((_) {
if (!completer.isCompleted) {
completer.completeError(
RequestAbortedException(request.url),
StackTrace.current,
);
}
}),
);
}
return completer.future;
}