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

原文地址:https://www.cnblogs.com/Aoobruce/p/9322928.html