我怎样才能获得在IE中工作的承诺?

时间:2017-05-12 14:19:22

标签: javascript promise requirejs html2canvas

在我的HTML中,我有:

<script type="text/javascript" src="js/libs/require.js"></script>
<script type="text/javascript" src="js/libs/html2canvas/html2canvas-master/dist/html2canvas.js"></script>

要解决其他问题,我必须升级到使用Promises的html2canvas版本,但发现IE(11)支持这一点。

我下载了图书馆&#34; es6-promise-master&#34;正如html2canvas的制造商所建议的那样。它位于js/libs/es6-promise-master

在我的主要javascript文件中,我有:

var Promise = require(['es6-promise']).Promise;

我无法让这个工作。我在javascript中的最新错误是:

require.js: Line: 7
Error: Mismatched anonymous define() module: function(c){return b(a,c)}
http://requirejs.org/docs/errors.html#mismatch

我已阅读http://requirejs.org/docs/errors.html#mismatch但我确实需要一些代码来弄清楚如何使其发挥作用。

1 个答案:

答案 0 :(得分:0)

此语法:

var Promise = require(['es6-promise']).Promise;

假设您有可用的CommonJS环境。这是由Webpack和Browserify等工具提供的。

您目前正在使用RequireJS - 这与CommonJS不同,并且对模块使用不同的格式。

使用Promise实现的最简单方法是包含一个polyfill,当您在页面中包含脚本时,该polyfill会自动安装。这是以es6-promise.auto.js提供的。