본문 바로가기

에러 잡기 실력 상승!

IE에서 async/await 비동기함수 에러

브라우저별 테스트를 하다가 IE에서 함수를 못찾는 에러를 발견했다.

 

다른 브라우저에서는 정상작동하는데 IE에서만 에러가 난다.

 

뭐가 문제인가 싶었는데 Promise객체를 사용하기 위해 async함수를 사용하고 있는 것이 생각났다.

참조: developer.mozilla.org

IE만 지원 안한다. 하.. 개똥같은 브라우저같으니..

 

이를 해결하기 위해 'babel'을 사용했다.

 

babel은 ECMAScript2015+ 코드를 구형 브라우저 버전과 호환되는 JS 버전으로 변환하는데 사용되는 도구이다.

 

최신 브라우저들은 ES6 문법을 지원하기 때문에 편리한 문법들이 사용 가능했지만, IE는 지원하지 않기 때문에 그렇지 못하다는것이다.

 

다행히 바벨을 사용하여 변환해주는 사이트가 있어 쉽게 해결하였다.

사이트 주소 : hi098123.tistory.com/400

 

사이트 가이드대로 폴리필과 같이 사용하니 해결되었다.

 

에러가 사라졌다!

 

 

 

참조:

medium.com/@larkbless/babel-babel-polyfill-%EC%99%9C-%EA%B0%99%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C-b5f806ae64a1

 

babel, babel-polyfill 왜 같이 사용할까?

요즘 프론트엔드 개발하는 사람들은 vue.js나 react.js를 사용할것이다. 그러면 자연스럽게 ES6+의 최신 문법을 사용하기 위해 babel과 babel-polyfill을 사용하게 된다. 나 같은 경우에는 공식 가이드에서

medium.com


stove99.github.io/javascript/2019/04/22/es6-in-browser-with-babel/

 

IE 에서 ES6 구문 사용하기

일반적인 웹환경에서 자신도 모르게 ES6 구문을 사용해서 IE에서 쪽바로 작동안되는 경우가 종종 발생한다. 이런 오류를 방지하기 위해서 babel-standalone, babel-polyfill 을 사용하면 된다.

stove99.github.io