|
| 1 | +--- |
| 2 | +id: query-retries |
| 3 | +title: Query Retries |
| 4 | +ref: docs/framework/react/guides/query-retries.md |
| 5 | +replace: |
| 6 | + { |
| 7 | + '@tanstack/react-query': '@tanstack/svelte-query', |
| 8 | + 'useQuery': 'createQuery', |
| 9 | + 'useQueries': 'createQueries', |
| 10 | + 'useInfiniteQuery': 'createInfiniteQuery', |
| 11 | + 'useMutation[(]': 'createMutation(() => ', |
| 12 | + 'useQuery[(]': 'createQuery(() => ', |
| 13 | + 'useQueries[(]': 'createQueries(() => ', |
| 14 | + 'useInfiniteQuery[(]': 'createInfiniteQuery(() => ', |
| 15 | + } |
| 16 | +--- |
| 17 | + |
| 18 | +[//]: # 'Example' |
| 19 | + |
| 20 | +```svelte |
| 21 | +<script lang="ts"> |
| 22 | + import { createQuery } from '@tanstack/svelte-query' |
| 23 | +
|
| 24 | + // Make a specific query retry a certain number of times |
| 25 | + const result = createQuery(() => ({ |
| 26 | + queryKey: ['todos', 1], |
| 27 | + queryFn: fetchTodoListPage, |
| 28 | + retry: 10, // Will retry failed requests 10 times before displaying an error |
| 29 | + })) |
| 30 | +</script> |
| 31 | +``` |
| 32 | + |
| 33 | +[//]: # 'Example' |
| 34 | +[//]: # 'Example2' |
| 35 | + |
| 36 | +```svelte |
| 37 | +<script lang="ts"> |
| 38 | + // Configure for all queries |
| 39 | + import { QueryClient, QueryClientProvider } from '@tanstack/svelte-query' |
| 40 | +
|
| 41 | + const queryClient = new QueryClient({ |
| 42 | + defaultOptions: { |
| 43 | + queries: { |
| 44 | + retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000), |
| 45 | + }, |
| 46 | + }, |
| 47 | + }) |
| 48 | +</script> |
| 49 | +
|
| 50 | +<QueryClientProvider client={queryClient}>...</QueryClientProvider> |
| 51 | +``` |
| 52 | + |
| 53 | +[//]: # 'Example2' |
| 54 | +[//]: # 'Example3' |
| 55 | + |
| 56 | +```svelte |
| 57 | +<script lang="ts"> |
| 58 | + import { createQuery } from '@tanstack/svelte-query' |
| 59 | +
|
| 60 | + const result = createQuery(() => ({ |
| 61 | + queryKey: ['todos'], |
| 62 | + queryFn: fetchTodoList, |
| 63 | + retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries |
| 64 | + })) |
| 65 | +</script> |
| 66 | +``` |
| 67 | + |
| 68 | +[//]: # 'Example3' |
| 69 | +[//]: # 'Example4' |
| 70 | + |
| 71 | +```svelte |
| 72 | +<script lang="ts"> |
| 73 | + import { createQuery } from '@tanstack/svelte-query' |
| 74 | +
|
| 75 | + const result = createQuery(() => ({ |
| 76 | + queryKey: ['todos'], |
| 77 | + queryFn: fetchTodos, |
| 78 | + refetchInterval: (query) => { |
| 79 | + // Refetch more frequently when in error state |
| 80 | + return query.state.status === 'error' ? 5000 : 30000 |
| 81 | + }, |
| 82 | + refetchIntervalInBackground: true, |
| 83 | + retry: false, // Disable built-in retries |
| 84 | + })) |
| 85 | +</script> |
| 86 | +``` |
| 87 | + |
| 88 | +[//]: # 'Example4' |
0 commit comments