오늘한거 버그 몇개 수정하고
어제 만들었던 턴 기능에다가 시간 제한 추가했음
좆스스톤 처럼 한사람 턴에 제한시간 있고 시간 지나면 자동으로 턴을 넘기는 그런 기능임
대충 플레이어의 턴은 서버측에서 관리를 하는데 어떻게 구현할까 생각하다가
한 플레이어가 턴이 되면 서버에서 setTimeout 돌리고 시간 지나면 다음으로 넘어가고
그전에 플레이어가 직접 턴종료를 하면 clearTimeout으로 없에버리는식으로 만듬
setTimeout이랑 프로미스로 동작하는 기능,
setTimer()로 시간 설정하면 프로미스 받는데 await으로 기다리다가
시간이 끝나기전에 반응을 하면 clearTimer()로 setTimeout을 없에버림
테스트로 작성한 코드인데
첫줄은 클라이언트한테 누가 턴인지 정보를 넘겨주는거고
둘째줄부터 타이머 10초로 설정했고(timeLimit은 위에 클래스로 만든객체)
10초가 지나면 콘솔 뜨도록 했음
그리고 아래쪽 socket.on 이벤트는 클라이언트에서 버튼눌렀을때 이벤트인데
먼저 버튼 누른사람이 현재 턴인지 사람인지 판단하고 맞으면 clearTimer()로 타이머 정지 시킴
예상대로 동작은해서 다행임
근데 문제가 저렇게 clearTimeout으로 취소를 시키면 리턴했던 promise는
어떤 응답도 안하고 pending 상태로 남아있는데
이게 혹시나 gc로 안없어지고 계속 쌓이는거 아닌지 모르겠음
오늘 promise gc 관련 자료 찾아보고
async await 이 블록킹을 하는가 테스트도 해보고
여러가지 쓸거 많았는데 빨리 씻고 자려고 해서 그냥 내일 써야지
27일 근성 ㅆㅅㅌㅊ;;
실제 진행한 날짜만 카운트 한거고 쉬는날이나 안한날은 뺏음