• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

클로저문제

21.01.01 23:05 작성 조회수 152

1

클로저 문제 

비동기함수에서 바깥쪽 변수 찾는데

componentDidMount(){

   const {imgCoord} = this.state

   setInterval(){

      

  }

}

내부함수에서 외부함수 변수 참조하는데  딱히 문제 될거 없지 않나요?? 이부분 조금 이해한되는데 조금만 더 설명 부탁드려도 될까요?TT

답변 1

답변을 작성해보세요.

7

비동기 함수의 경우 자주 발생하는 문제인데요. imgCoord를 setInterval 바깥에 빼면 imgCoords는 setInterval하기 전 시점으로 고정됩니다. 그래서 setInterval 후에 가위->바위로 바뀌어도 가위로 계속 남아있고, 그걸 참조하게 됩니다.

imgCoord가 setInterval 안에 들어있으면 setInterval하는 순간의 imgCoords를 가져옵니다. 따라서 항상 최신 imgCoords값을 가져올 수 있게 됩니다.