Quiero que la consulta se vuelva a intentar hasta que se alcance el resultado esperado. ¿Cómo paso una condición a la función para decidir si la consulta tuvo éxito o no?
export async function waitUntilQuerySucceeds( id: Id, queryKey: QueryKey, queryClient: QueryClient, retryInterval = 500, amountOfAttempts = 12, ) { let attempts = 0 let results: [] | undefined = queryClient.getQueryData([queryKey, id]) while (attempts < amountOfAttempts) { const result = results?.find(p => p.Id === id) if (result) return true attempts += 1 await queryClient.refetchQueries([queryKey, id]) await wait(retryInterval) results = queryClient.getQueryData([queryKey, id]) } return false } function wait(timeout: number) { return new Promise(resolve => { setTimeout(resolve, timeout) }) }export async function waitUntilQuerySucceeds( id: Id, queryKey: QueryKey, queryClient: QueryClient, retryInterval = 500, amountOfAttempts = 12, ) { let isDataFetched = false let attempts = 0 let results: [] | undefined = queryClient.getQueryData([queryKey, id]) while (attempts < amountOfAttempts && !isDataFetched) { const result = results?.find(p => p.Id === id) if (result) isDataFetched = true; attempts += 1 await queryClient.refetchQueries([queryKey, id]) await wait(retryInterval) results = queryClient.getQueryData([queryKey, id]) } return false } function wait(timeout: number) { return new Promise(resolve => { setTimeout(resolve, timeout) }) }