Ich möchte wissen, ob JS Versprechungen ein Teil von es5 waren? Wenn ja, warum funktioniert es manchmal in älteren Browsern nicht und wir müssen ein Polyfill für dasselbe hinzufügen. Auch welches Polyfill sollte in diesem Fall hinzugefügt werden, es5 oder es6? Ich habe ein wenig Verwirrung in Bezug auf das Gleiche.ES5 vs ES6 Versprechen
Antwort
ES5 hatte keine Versprechungen. Bibliotheken wie jQuery oder Angular hatten ihre eigenen benutzerdefinierten und nicht standardmäßigen Versprechungen.
Beliebte Promise-Implementierungen für die Verwendung mit ES5 sind Bluebird (das mit dem ES6-Standard kompatibel ist) und Q (das ursprünglich nicht mit dem ES6-Standard kompatibel war), und RSVP.
Weder sind tatsächliche Polyfills, in denen sie nicht aus dem Weg kommen, wenn native Versprechen vorhanden sind, weil sie zusätzliche Funktionen hinzufügen.
Es gibt einige reine Polyfills für ES6 verspricht. Hier ist eine, die eine Teilmenge von RSVP ist: https://github.com/stefanpenner/es6-promise.
Es gibt Gründe, um mehr als ein polyfill zu verwenden, wie Sie hier lesen: Are there still reasons to use promise libraries like Q or BlueBird now that we have ES6 promises?
Vorstellung für eine Empfehlung eines bestimmten polyfill Bibliothek wird als Off-Topic hier auf Stack-Überlauf, damit ich nicht dazu äußern wird .
@ jfriend00 Ich fand auf Googeln dieses Codepen http://codepen.io/tijmenbruggeman/pen/LVOqBq Ist es irreführend? –
@ParamSingh - Was hat dieser Codepen hier mit irgendetwas zu tun? – jfriend00
@KirillSlatin - Ich habe mich bereits auf "benutzerdefiniert und nicht standardisiert" geändert, obwohl ich lieber Energie für sinnvolle Inhalte ausgeben würde, als Wörter zu schreiben, die für niemanden verwirrend sein werden. – jfriend00
- 1. Javascript.bind - ES5 Vs ES6
- 2. ES6 Generator Funktion vs Versprechen
- 3. Unerwartete Transpile ES6> ES5
- 4. Versprechen es6 und superagent
- 5. ES6 Versprechen und Klassenkonflikt
- 6. Webpack wandelt ES6 in ES5 nicht um
- 7. Konvertieren ES6 Javascript in ES5 ohne Transpiler
- 8. React-Native: ES6 oder ES5 Klassen?
- 9. Wie man ES6-Versprechen mit Typoskript benutzt?
- 10. Warum protokolliert die ES6-Klassensyntaxkonsole anders als eine ES5-Klassensyntax?
- 11. onrejected vs catch in Versprechen
- 12. Wie diese latenten Stil Versprechen ES6 Stil Versprechen
- 13. Übersetzen ES6 'für' Schleife von ES5 'für jede' Schleife
- 14. Drehen ein ES5 Reagieren + Flux Dispatcher Test in ES6 nicht
- 15. Muss typescript zu es6 und dann zu es5 kompiliert werden
- 16. Verwenden von ES5-Array-Methoden mit ES6-Generatoren
- 17. Versprechen vs SetTimeout
- 18. ES6 Versprechen Fehler sprudeln nicht wie erwartet
- 19. JavaScript ES6 Versprechen mit Angular2 - undefinierte Variable
- 20. httpBackend Mock AJAX ES6 Versprechen in $ q.when
- 21. Lösen Sie ES6 Versprechen mit ersten Erfolg?
- 22. Versprechen kann nicht gelöst werden, wenn async verwendet wird, warten mit babel und ES6 Versprechen
- 23. CommonJS Importe vs ES6 Importe
- 24. Webpack mit eckigen 1.x und ES5
- 25. Bluebird.JS Versprechen: neues Versprechen (Funktion (auflösen, ablehnen) {}) vs Promise.try (Funktion() {})
- 26. 'This' in Komponente von Typescript vs ES5 in Angular2
- 27. How to run nach allen Javascript ES6 Versprechen sind gelöst
- 28. Leere Versprechen zurück in ES6 mit einer importierten Klasse
- 29. Zugriff auf dieses Objekt in ES6 in einem Versprechen
- 30. Typisierungen ES6-Versprechen geben 'keine Abhängigkeiten' als Ausgang
ES5 hatte keine Versprechungen. Bibliotheken wie jQuery oder Angular hatten ihre eigenen proprietären Versprechen Implementierungen. – jfriend00
ES5 hat keine Versprechen als Teil der Sprache. Für ES5 sind Versprechen nur ein Entwurfsmuster. Es gibt tatsächlich viele Bibliotheken in ES5, die viele verschiedene Arten von Versprechen umsetzen. Sie können sie sogar selbst implementieren, da es nur ein Designmuster ist. – slebetman
@slebetman Können Sie mir ein einfaches Beispiel für die Umsetzung des Versprechens geben? –