From bb9638315a89cdc32c548e5fb2776a19b6036c59 Mon Sep 17 00:00:00 2001 From: novice1993 Date: Fri, 8 Sep 2023 01:04:15 +0900 Subject: [PATCH] =?UTF-8?q?[Rafactor]=20=ED=86=B5=EC=8B=A0=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=BD=94=EB=93=9C=20=EC=9D=BC=EB=B6=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 통신 로직 관련하여 if/else if 조건문 조금 더 명료하게 수정 Issues #14 --- client/src/hooks/useGetStockData.ts | 12 ++++-------- client/src/hooks/useGetStockInfo.ts | 12 ++++-------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/client/src/hooks/useGetStockData.ts b/client/src/hooks/useGetStockData.ts index 2afd9c43..522f4ab4 100644 --- a/client/src/hooks/useGetStockData.ts +++ b/client/src/hooks/useGetStockData.ts @@ -7,7 +7,7 @@ const useGetStockData = (companyId: number) => { // 시간대 (timeZone) 별로 queryKey를 다르게 설정해서, 서버 데이터가 동일할 때는 캐싱된 데이터 활용하고 서버 데이터가 갱신됐을 때는 새롭게 받아옴 (서버 데이터 30분마다 갱신) const currentTime = new Date(); - const [month, day, hour, minute] = [currentTime.getMonth(), currentTime.getDay(), currentTime.getHours, currentTime.getMinutes()]; + const [month, day, hour, minute] = [currentTime.getMonth(), currentTime.getDate(), currentTime.getHours, currentTime.getMinutes()]; const timeZone = minute === 0 || minute === 30 ? "30 or 60" : 0 < minute && minute < 30 ? "1~29" : "31~59"; const queryKey = `${month}월 ${day}일 ${hour}시 ${timeZone}`; @@ -15,17 +15,13 @@ const useGetStockData = (companyId: number) => { useEffect(() => { if (minute === 0 || minute === 30) { setAutoRefetch(true); - } - - if (0 < minute && minute < 30) { + } else if (0 < minute && minute < 30) { const delayTime = (30 - minute) * 60000; setTimeout(() => { refetch(); setAutoRefetch(true); }, delayTime); - } - - if (30 < minute && minute < 60) { + } else if (30 < minute && minute < 60) { const delayTime = (60 - minute) * 60000; setTimeout(() => { refetch(); @@ -36,7 +32,7 @@ const useGetStockData = (companyId: number) => { const { data, isLoading, error, refetch } = useQuery(`chartData${companyId} ${queryKey}`, () => getChartData(companyId), { enabled: true, - refetchInterval: autoRefetch && 60000 * 10, // 정각 혹은 30분에 맞춰서 10분 마다 데이터 리패칭 + refetchInterval: autoRefetch ? 60000 * 10 : false, // 정각 혹은 30분에 맞춰서 10분 마다 데이터 리패칭 onSuccess: () => { console.log(new Date()); console.log(data); diff --git a/client/src/hooks/useGetStockInfo.ts b/client/src/hooks/useGetStockInfo.ts index bdd63d1c..3bef1b71 100644 --- a/client/src/hooks/useGetStockInfo.ts +++ b/client/src/hooks/useGetStockInfo.ts @@ -7,7 +7,7 @@ const useGetStockInfo = (companyId: number) => { // 시간대 (timeZone) 별로 queryKey를 다르게 설정해서, 서버 데이터가 동일할 때는 캐싱된 데이터 활용하고 서버 데이터가 갱신됐을 때는 새롭게 받아옴 (서버 데이터 30분마다 갱신) const currentTime = new Date(); - const [month, day, hour, minute] = [currentTime.getMonth(), currentTime.getDay(), currentTime.getHours, currentTime.getMinutes()]; + const [month, day, hour, minute] = [currentTime.getMonth(), currentTime.getDate(), currentTime.getHours, currentTime.getMinutes()]; const timeZone = minute === 0 || minute === 30 ? "30 or 60" : 0 < minute && minute < 30 ? "1~29" : "31~59"; const queryKey = `${month}월 ${day}일 ${hour}시 ${timeZone}`; @@ -15,17 +15,13 @@ const useGetStockInfo = (companyId: number) => { useEffect(() => { if (minute === 0 || minute === 30) { setAutoRefetch(true); - } - - if (0 < minute && minute < 30) { + } else if (0 < minute && minute < 30) { const delayTime = (30 - minute) * 60000; setTimeout(() => { refetch(); setAutoRefetch(true); }, delayTime); - } - - if (30 < minute && minute < 60) { + } else if (30 < minute && minute < 60) { const delayTime = (60 - minute) * 60000; setTimeout(() => { refetch(); @@ -36,7 +32,7 @@ const useGetStockInfo = (companyId: number) => { const { data, isLoading, error, refetch } = useQuery(`stockInfo${companyId} ${queryKey}}`, () => getStockInfo(companyId), { enabled: true, - refetchInterval: autoRefetch && 60000 * 10, // 정각 혹은 30분에 맞춰서 10분 마다 데이터 리패칭 + refetchInterval: autoRefetch ? 60000 * 10 : false, // 정각 혹은 30분에 맞춰서 10분 마다 데이터 리패칭 onSuccess: () => { console.log(new Date()); console.log(data);