在沒有原生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