Se si desidera che questo tipo di codice per l'esecuzione in IE11 (che non supporta gran parte ES6 a tutti), allora avete bisogno di ottenere una libreria di terze parti promessa (come Bluebird), includere tale biblioteca e il cambiamento la codifica per utilizzare le strutture di codifica ES5 (nessuna funzione di freccia, n. let
, ecc.) in modo da poter vivere entro i limiti di ciò che i vecchi browser supportano.
Oppure, è possibile utilizzare un transpiler (come Babel) per convertire il codice ES6 in codice ES5 che funzionerà con i browser più vecchi.
Ecco una versione del codice scritto in sintassi ES5 con la libreria promessa 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 non ha es2015 –
IE11 né supporti [funzioni direzionali] (http://caniuse.com/#feat = funzioni-freccia) né [Promesse native] (http://caniuse.com/#feat=promises). Utilizzare un transpiler JS (come [babel] (https://babeljs.io/)) o non utilizzare le funzionalità ES6. Per il supporto Promise è possibile utilizzare una libreria come [bluebird] (http://bluebirdjs.com/). – Tomalak
(BTW, nota come http://caniuse.com mostra che questo codice non verrebbe eseguito anche in altri browser rispetto a IE11. Prendi l'abitudine di controllare in che modo una funzionalità JS, CSS o HTML ben supportata che desideri utilizzare è .) – Tomalak