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