Front-End
2023. 8. 22.
useEffect 의 첫번째 인자로 async 함수를 넘기면 안돼는 이유
React 사용시 useEffect 훅에 async 함수를 넘겨서 다음과 같은 에러를 겪은적이 한두번씩 있을것 이라고 생각합니다. useEffect 의 콜백 함수 인자는, 콜백함수 자기 자신과 return 되는 클로저 함수를 통해 동작 하는 함수입니다. 이 클로저 함수는 clean-up 기능을 담당합니다. 하지만 async 함수는 Promise 객체를 리턴 하는 함수입니다. 따라서 내부에 clean-up 함수가 포함되어 있더라도, useEffect 가 전달받은것은 그저 Promise 객체이기 때문에, useEffect 훅에서 cleanUp 함수를 전달받을수가 없게됩니다. function useEffect (cleanUp, deps) { ... if (typeof cleanUp === 'function' ..