본문으로 바로가기

[explorer] 'Promise'이(가) 정의 되지 않았습니다.

category 3. 웹개발/3_2 Error모음 2021. 2. 2. 15:41
반응형

[explorer] 'Promise'이(가) 정의 되지 않았습니다.

 

'Promise' 미정의 오류

▶ 1. 오류 현상

 - 환경 : Explorer 브라우저

 - 먼저 간단히 저 Promise가 무었인지 짚고 넘어 가자면, 최근 많은 라이브러리(Grid 등등)에서 비동기 처리, 동기화 처리를 위하여 JavaScript Promise개체를 많이 사용 하고 있다.

 

※ 문제점

최신 브라우저 에서는 이상없이 동작 하지만 IE(Internet Explorer)에서 해당 오류를 발견하는 일이 간혹 발생 할 것이다.

 - 현재 MS에선 공식적으로 IE에 대한 업데이트, 지원은 없을 것으로 발표 하였고, IE 11 버전에서도 promise를 지원하지 않는 상황 이다.

 - 솔직히 이번에 어도비, 크롬 등 Flash를 지원안함에 따라 각종 싸이트에서 오류를 겪고 있는 일들을 보곤, 이와 같이 IE를 사용하지 말고 그냥 버리라고 말하고 싶기도 하다. 하지만 아직까지 많은 노후화된 환경에서 근무하고 있는 분들에게는 IE 지원이 절실할 수도 있기에 해결방법을 그래도 알아보긴 해보자.

 

▶ 2. 해결 방법

 - promise를 사용할 수 있게 다음 2가지 js중 한가지 js를 본인이 담당하는 사이트에 넣어 주도록 하자.

 - 다음의 2가지 js중 1가지만 삽입하면 해결 가능하다.

 

● 첫번째 방법 : polyfill

ex1) cdn 이용

 

첫번째)

<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></scrip>

두번째)

<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>

 

ex) github 직접 다운로드 또는 clone, npm 등

 - github.com/taylorhakes/promise-polyfill

 

첫번째 ) polyfill.js

 - raw.githubusercontent.com/taylorhakes/promise-polyfill/master/dist/polyfill.js

 

두번째 ) polyfill.min.js

 - raw.githubusercontent.com/taylorhakes/promise-polyfill/master/dist/polyfill.min.js

 

 

● 두번째 방법 : bluebird

ex) cdn 이용

 - 참고 : www.jsdelivr.com/package/npm/bluebird

<script src="https://cdn.jsdelivr.net/npm/bluebird@3.7.2/js/browser/bluebird.min.js"></scrip>

 

ex) github 직접 다운로드 또는 clone, npm 등

 - bluebirdjs.com/docs/getting-started.html

 

 

위 두가지 js(polyfill, bluebird) 둘 중 한가지의 js만 삽입하더라도 해당 오류는 해결되는 것을 볼 수 있다.

반응형

댓글을 달아 주세요