const { isFetching, isError, isSuccess, data } = useQuery({
queryKey: ['...'],
queryFn: async () => {
const startTime = Date.now();
const response = await fetch('...', {
cache: 'no-store',
});
const timeTaken = Date.now() - startTime;
if (timeTaken < 500) {
await new Promise((resolve) => setTimeout(resolve, 500 - timeTaken));
}
if (!response.ok) {
throw new Error('...');
}
const receivedObject: {
...
} = await response.json();
const { data } = receivedObject;
return data;
},
});
useEffect(() => {
if (isFetching) return;
if (isError) { ... }
if (isSuccess) { ... }
}, [isFetching]);
return (<></>);
const { isFetching, isError, isSuccess, data } = useQuery({
queryKey: ['...'],
queryFn: async () => {
const startTime = Date.now();
const response = await fetch('...', {
cache: 'no-store',
});
const timeTaken = Date.now() - startTime;
if (timeTaken < 500) {
await new Promise((resolve) => setTimeout(resolve, 500 - timeTaken));
}
if (!response.ok) {
throw new Error('...');
}
const receivedObject: {
...
} = await response.json();
const { data } = receivedObject;
return data;
},
});
useEffect(() => {
if (isFetching) return;
if (isError) { ... }
if (isSuccess) { ... }
}, [isFetching]);
return (<></>);