console.log는 비동기일수도 아닐수도 있습니다
<language>/javascript
2024. 9. 29. 14:25
이게 말이냐 똥이냐 싶겠지만 진짜다. 트레이딩 뷰 라이브러리의 불친절한 공식문서를 해독하며 프로덕션에 붙이다 분봉이 제대로 붙지 않는 상황이 있어서 여기저기 콘솔을 찍어봐도 문제를 찾을 수가 없었다. js 이벤트루프 특성상 이 스코프 안에서 다른 요소가 간섭할 방법이 없다. 공유자원을 가지지 못하는 사실상 멀티프로세스에 가까운 web worker때문도 아니고, event bus 부분도 떼버려서 문제가 없었다. 진짜 귀신이 곡할 노릇인데… 범인은 console.log였다… object의 참조를 찍을때 이후에 그 object가 변하면 변한 값으로 찍히더라..왜 그러냐면 브라우저 최적화를 위해 그 라인에서 바로 찍지 않고 작업이 종료된 이후에 찍을 수도 안 찍을 수도 있다.. 브라우저마다 다름let obj =..