Chcę wiedzieć, czy obietnice JS były częścią es5? Jeśli tak, dlaczego nie działa czasami w starszych przeglądarkach i musimy dodać polyfill dla tego samego. Ponadto, który polyfill należy dodać w tym przypadku, es5 lub es6? Mam małe zamieszanie dotyczące tego samego.ES5 vs ES6 Obietnica
Odpowiedz
ES5 nie otrzymał obietnic. Biblioteki takie jak jQuery lub Angular miały własne niestandardowe i niestandardowe implementacje obietnic.
Popularnymi implementacjami obietnic do użytku z ES5 są Bluebird (zgodny ze standardem ES6) i Q (który pierwotnie nie był zgodny ze standardem ES6 - choć wydaje się poruszać w tym kierunku) i RSVP.
Nie są to również rzeczywiste polyfills, ponieważ nie zejdą z drogi, jeśli obecne są obietnice, ponieważ dodają dodatkowe funkcje.
Istnieje kilka czystych polyfills dla obietnic ES6. Oto jeden, który jest podzbiorem RSVP: https://github.com/stefanpenner/es6-promise.
Istnieją powody do korzystania z więcej niż PolyFill jak można przeczytać tutaj: Are there still reasons to use promise libraries like Q or BlueBird now that we have ES6 promises?
wyjściowa zalecenia konkretnej biblioteki polyfill jest uważana za off-topic tutaj na przepełnienie stosu, więc nie będę tego komentować .
@ jfriend00 Znalazłem na googling ten codepen http://codepen.io/tijmenbruggeman/pen/LVOqBq Czy to wprowadzające w błąd? –
@ParamSingh - Co ten codepen ma wspólnego z czymkolwiek tutaj? – jfriend00
@KirillSlatin - już zmieniłem na "niestandardowy i niestandardowy", ale wolałbym wydawać energię na treści merytoryczne, a nie wyrabianie czegoś nie będzie nikomu mylić. – jfriend00
ES5 nie otrzymał obietnic. Biblioteki, takie jak jQuery lub Angular, mają własne zastrzeżone obietnice. – jfriend00
ES5 nie ma obietnic jako części języka. W przypadku ES5 obietnice to tylko wzór. W ES5 jest rzeczywiście wiele bibliotek, które wdrażają wiele różnych rodzajów obietnic. Możesz nawet zaimplementować je samodzielnie, ponieważ jest to tylko wzór. – slebetman
@slebetman Czy możesz podać mi jakiś łatwy przykład realizacji obietnicy? –