각종 이벤트, 미션을 통해 보상을 받는 경우 유저가 Claim 버튼을 단시간 내에 여러번 클릭하여 서버에 여러번 요청이 들어가고 중복 요청으로 인한 비정상적인 응답 및 에러가 발생하는 이슈가 있었다.
위 문제를 해결하기 위해 여러가지 방법을 사용할 수 있었고, 나는 lodash에서 제공하는 debounce 함수를 사용해 문제를 해결했다.
View Model에서 mutation을 정의하고
const { claim, claimAll } = ExViewModel();
위와 같이 mutate 함수를 구독해 사용하는 과정에서
const debouncedClaimAll = debounce(claimAll, 600);
debounce를 걸어주면
지정해놓은 시간이 끝나고 하나의 요청을 보낼 수 있었고, 문제를 해결할 수 있었다.
'React.js' 카테고리의 다른 글
Ref와 Polling 방식을 사용하여 게임 데이터 준비 이후 실행 처리 (0) | 2024.10.08 |
---|---|
[React] Queue 자료구조를 사용한 Task Scheduling (0) | 2024.05.09 |
[React] reverse() 함수 관련 크로스 브라우징 이슈 (0) | 2024.04.18 |
[React] 리액트 Atomic Design Pattern 설계 (0) | 2023.03.10 |
[React] Orval Codegenerator를 사용한 Swagger -> React-Query 코드 자동생성 (0) | 2023.02.13 |