From abe8089fddbc4bec491ad2af6411b02b35c6e20e Mon Sep 17 00:00:00 2001 From: Kristaps Fabians Geikins Date: Tue, 15 Nov 2022 17:26:09 +0200 Subject: [PATCH] fix: making sure tryFirstResolve/reject are always invoked --- packages/vue-apollo-composable/src/useQuery.ts | 15 +++++---------- packages/vue-apollo-composable/yarn.lock | 0 2 files changed, 5 insertions(+), 10 deletions(-) create mode 100644 packages/vue-apollo-composable/yarn.lock diff --git a/packages/vue-apollo-composable/src/useQuery.ts b/packages/vue-apollo-composable/src/useQuery.ts index 25ceccd..213e744 100644 --- a/packages/vue-apollo-composable/src/useQuery.ts +++ b/packages/vue-apollo-composable/src/useQuery.ts @@ -189,6 +189,7 @@ export function useQueryImpl< firstReject = undefined firstResolveTriggered = false firstRejectError = undefined + stop() } vm && onServerPrefetch?.(() => { @@ -196,12 +197,12 @@ export function useQueryImpl< return new Promise((resolve, reject) => { firstResolve = () => { - resolve() resetFirstResolveReject() + resolve() } firstReject = (apolloError: ApolloError) => { - reject(apolloError) resetFirstResolveReject() + reject(apolloError) } if (firstResolveTriggered) { @@ -283,10 +284,7 @@ export function useQueryImpl< processError(resultErrorsToApolloError(queryResult.errors)) } - if (firstResolve) { - tryFirstResolve() - stop() - } + tryFirstResolve() } function processNextResult (queryResult: ApolloQueryResult) { @@ -306,10 +304,7 @@ export function useQueryImpl< processNextResult((query.value as ObservableQuery).getCurrentResult()) } processError(apolloError) - if (firstReject) { - tryFirstReject(apolloError) - stop() - } + tryFirstReject(apolloError) // The observable closes the sub if an error occurs resubscribeToQuery() } diff --git a/packages/vue-apollo-composable/yarn.lock b/packages/vue-apollo-composable/yarn.lock new file mode 100644 index 0000000..e69de29