Sunday, May 19, 2024
133
rated 0 times [  136] [ 3]  / answers: 1 / hits: 170628  / 8 Years ago, tue, march 15, 2016, 12:00:00

I have a simple code that runs perfectly on every browser except for the Internet Explorer 11. How can I make it work on all browsers?


Codepen


'use strict';

let promise = new Promise((resolve, reject) => {

setTimeout(() => {
resolve("result");
}, 1000);
});

promise
.then(
result => {
alert("Fulfilled: " + result);
},
error => {
alert("Rejected: " + error);
}
);

More From » internet-explorer

 Answers
20

If you want this type of code to run in IE11 (which does not support much of ES6 at all), then you need to get a 3rd party promise library (like Bluebird), include that library and change your coding to use ES5 coding structures (no arrow functions, no let, etc...) so you can live within the limits of what older browsers support.



Or, you can use a transpiler (like Babel) to convert your ES6 code to ES5 code that will work in older browsers.



Here's a version of your code written in ES5 syntax with the Bluebird promise library:



<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>

[#62931] Saturday, March 12, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mattieparisp

Total Points: 612
Total Questions: 109
Total Answers: 104

Location: Trinidad and Tobago
Member since Fri, May 8, 2020
4 Years ago
;