web-dev-qa-db-fra.com

ES5 vs promesses ES6

Je veux savoir si les promesses JS faisaient partie d'es5? Si c'est le cas, pourquoi cela ne fonctionne pas parfois dans les anciens navigateurs et nous devons ajouter un polyfill pour le même. De plus, quel polyfill devrait être ajouté dans ce cas, un es5 ou un es6? J'ai une petite confusion à ce sujet.

17
Param Singh

ES5 n'avait pas de promesses. Les bibliothèques comme jQuery ou Angular avaient leurs propres implémentations de promesses personnalisées et non standard.

Les implémentations de Promise populaires à utiliser avec ES5 sont Bluebird (qui est compatible avec la norme ES6) et Q (qui n'était pas compatible à l'origine avec la norme ES6 - mais semble aller dans cette direction) et RSVP.

Les polyfills ne sont pas non plus réels car ils ne se dérangent pas si des promesses natives sont présentes car elles ajoutent des fonctionnalités supplémentaires.

Il existe des polyfills purs pour les promesses ES6. En voici un qui est un sous-ensemble de RSVP: https://github.com/stefanpenner/es6-promise .

Il y a des raisons d'utiliser plus qu'un polyfill comme vous pouvez le lire ici: Y a-t-il encore des raisons d'utiliser des bibliothèques de promesses comme Q ou BlueBird maintenant que nous avons des promesses ES6?

Demander une recommandation d'une bibliothèque polyfill spécifique est considéré comme hors sujet ici sur le débordement de la pile, donc je ne commenterai pas à ce sujet.

36
jfriend00