Как я могу получить обещания работать в IE?

В моем 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>

Чтобы решить другие проблемы, мне пришлось обновиться до версии html2canvas, которая использует Promises, но обнаружил, что это поддерживается в IE (11).

Я скачал библиотеку "es6-обещание-мастер", как было предложено создателем 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, но мне действительно нужен код, чтобы понять, как это работает.

1 ответ

Решение

Этот синтаксис:

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

предполагается, что у вас есть среда CommonJS. Это обеспечивается такими инструментами, как Webpack и Browserify.

В данный момент вы используете RequireJS - это нечто отличное от CommonJS и использует другой формат для модулей.

Самым простым способом использования этой реализации Promise было бы включение полизаполнения, которое автоматически установится, когда вы включите скрипт на своей странице. Это предусмотрено как es6-promise.auto.js,

Другие вопросы по тегам