Ответ 1
Если вы хотите, чтобы этот тип кода запускался в 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>