Если вы хотите этот типа кода для запуска в IE11 (который не поддерживает большую часть ES6 вообще), то вам необходимо получить библиотеку третьей партии обещания (как Bluebird), включает в себя эту библиотеку и изменения ваше кодирование использует структуры кодирования ES5 (нет функций стрелок, нет let
и т. д.), чтобы вы могли жить в пределах того, что поддерживают старые браузеры.
Или вы можете использовать транспилер (например, Babel), чтобы преобразовать код ES6 в код ES5, который будет работать в старых браузерах.
Вот версия вашего кода, написанного в синтаксисе ES5 с Bluebird библиотеки обещание:
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js"></script>
<script>
'use strict';
var promise = new Promise(function(resolve) {
setTimeout(function() {
resolve("result");
}, 1000);
});
promise.then(function(result) {
alert("Fulfilled: " + result);
}, function(error) {
alert("Rejected: " + error);
});
</script>
ie11 не es2015 –
IE11 ни опоры [стрелка функции] (http://caniuse.com/#feat = стрелки-функции), ни [родные обещания] (http://caniuse.com/#feat=promises). Используйте транспилер JS (например, [babel] (https://babeljs.io/)) или не используйте функции ES6. Для поддержки Promise вы можете использовать библиотеку, например [bluebird] (http://bluebirdjs.com/). – Tomalak
(Кстати, обратите внимание, как http://caniuse.com показывает, что этот код также не запускался в некоторых других браузерах, кроме IE11.Иметь привычку проверять, насколько хорошо поддерживается функция JS, CSS или HTML, которую вы хотите использовать .) – Tomalak