From 454f00ad7bd33c231eb4cb49340560914a998453 Mon Sep 17 00:00:00 2001 From: Amrit Pandey <54658725+amritnew@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:33:11 -0400 Subject: [PATCH] Wrap dio_link executeDioRequest in try-catch block request function is having return type Stream. Hence catch block will yield Stream.error() to send exception asynchronously --- links/gql_dio_link/lib/src/dio_link.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/links/gql_dio_link/lib/src/dio_link.dart b/links/gql_dio_link/lib/src/dio_link.dart index 0e317ffa..5f2c20b1 100644 --- a/links/gql_dio_link/lib/src/dio_link.dart +++ b/links/gql_dio_link/lib/src/dio_link.dart @@ -67,7 +67,8 @@ class DioLink extends Link { @override Stream request(Request request, [forward]) async* { - final dio.Response> dioResponse = + try { + final dio.Response> dioResponse = await _executeDioRequest( request: request, headers: { @@ -96,6 +97,10 @@ class DioLink extends Link { response: gqlResponse.response, context: _updateResponseContext(gqlResponse, dioResponse), ); + } + catch (e) { + yield* Stream.error(e); + } } dynamic _prepareRequestBody(Request request) {