web-dev-qa-db-fra.com

existe-t-il un moyen de mettre en œuvre les promesses dans ie9 +

J'essaie d'implémenter la promesse native sur IE9 + et il semble qu'Internet Explorer ne reconnaît pas la classe/l'objet "Promise". J'ai cherché dans http://caniuse.com/#search=Promise et j'ai vu que [~ # ~] ie [~ # ~] n'ont pas d'objet Promise. Mais c'est étrange parce que jQuery et Angular fonctionne avec des promesses et travaillant dans IE9 +. Peut-être implémentent-ils leur propre promesse ?? ** Can je mets en œuvre ma propre promesse? **

27
user1019872

Qu'est-ce qui est "natif"

Être natif signifie qu'il est écrit dans la base de code du navigateur et non dans le code de niveau utilisateur. Afin de mettre en œuvre les promesses de manière native dans IE9, vous devez obtenir une copie du code source IE9 auprès de Microsoft, coder celles-ci, le compiler et le distribuer. Bien que ce soit faisable, ce n'est pas une option très viable.

Utiliser les promesses aujourd'hui

D'un autre côté - il existe plusieurs bibliothèques de promesses qui existent dans userlevel . Il est parfaitement possible d'implémenter votre propre implémentation de promesse - voici un excellent article de blog sur la façon dont .

Vous pouvez librement inclure une bibliothèque comme bluebird ( bluebird ) ou Q qui remplit cette API et continuera de bien fonctionner avec les promesses d'ES6 à l'avenir. Il convient de mentionner que Bluebird fonctionne par exemple sur IE6 +, il ne devrait donc pas y avoir de problème dans votre cas.

Par exemple voici l'implémentation d'Angular et voici l'implémentation de jQuery - Angular est plus lisible à mon avis.

Le standard

Notez également que contrairement au commentaire ci-dessus, les promesses sont standardisées par la spécification Promises/A + avec des bibliothèques comme Angular conform et des bibliothèques comme jQuery travaillent à se conformer à la prochaine version et le feront probablement dans la prochaine version. Les promesses natives se conforment également à la norme et la superposent.

25
Benjamin Gruenbaum

Voici une promesse d'implémentation Je me suis écrit en TypeScript, et je suis testé pour fonctionner pleinement à partir d'IE8. Oui. il est entièrement conforme à Promises/A + (et testé ).

Comme il est écrit en TypeScript, le plan est également d'obtenir la définition de tsd dans les jours suivants.

4
bogdan.mustiata