IE11 Promise對象未定義錯誤--解決方法


在沒有原生Promise支持的瀏覽器下(如IE),使用Promise會拋出未定義的錯誤異常。

解決方法:

(1)非node項目(了解polyfill):

可引入<script src = "https://cdn.polyfill.io/v2/polyfill.min.js"></script> 或 <script type="text/javascript" src = "https://cdn.polyfill.io/v2/polyfill.min.js?features=es6"></script>

(2)node項目:

正常來講 有babel的項目是可以使用Promise的,但是如果webpack異步加載時,要求原生支持Promise,webpack生成的new Promise相關代碼,超出babel的transform-runtime的控制范圍,只有導出全局Promise才能解決

<1>引入babel-polyfill導出全局Promise(這種方法不帶會導出Promise,還會導出其他大量全局對象,可能會有沖突,且文件體積比較大)

<2>在js文件開頭添加window.Promise = Promise; 語句來導出全局Promise

 

原文參考:http://www.php.cn/js-tutorial-380204.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM