From 571a549ad03d946b84a6d0321a1511fb6ce91e1e Mon Sep 17 00:00:00 2001 From: David Driscoll Date: Sun, 20 Oct 2024 10:51:54 -0400 Subject: [PATCH] The OperationExecutor does not emit error results --- .../Client/src/Core/OperationExecutor.Observable.cs | 7 +++++++ .../src/Core/StorelessOperationExecutor.Observable.cs | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/StrawberryShake/Client/src/Core/OperationExecutor.Observable.cs b/src/StrawberryShake/Client/src/Core/OperationExecutor.Observable.cs index d36211d0eef..d199b651c0a 100644 --- a/src/StrawberryShake/Client/src/Core/OperationExecutor.Observable.cs +++ b/src/StrawberryShake/Client/src/Core/OperationExecutor.Observable.cs @@ -91,12 +91,19 @@ private async Task ExecuteAsync( result = resultBuilder.Build(response); } + if (result.IsErrorResult()) + { + observer.OnNext(result); + break; + } + // Emit the result, if it isn't a duplicate if (!Equals(result.Data, lastEmittedResult?.Data)) { observer.OnNext(result); lastEmittedResult = result; } + _operationStore.Set(_request, result); } diff --git a/src/StrawberryShake/Client/src/Core/StorelessOperationExecutor.Observable.cs b/src/StrawberryShake/Client/src/Core/StorelessOperationExecutor.Observable.cs index 72db6b261b1..a64db391fc3 100644 --- a/src/StrawberryShake/Client/src/Core/StorelessOperationExecutor.Observable.cs +++ b/src/StrawberryShake/Client/src/Core/StorelessOperationExecutor.Observable.cs @@ -49,7 +49,12 @@ private async Task ExecuteAsync( return; } - observer.OnNext(resultBuilder.Build(response)); + var result = resultBuilder.Build(response); + observer.OnNext(result); + if (result.IsErrorResult()) + { + break; + } } } catch (Exception ex)