ES5 против ES6 обещаний

Я хочу знать, были ли обещания JS частью es5? Если так, почему это иногда не работает в старых браузерах, и мы должны добавить полифилл для того же самого. Кроме того, какой polyfill должен быть добавлен в этом случае, es5 один или es6? У меня есть небольшая путаница относительно того же.

 jfriend0017 июл. 2016 г., 20:25
ES5 не было обещаний. Такие библиотеки, как jQuery или Angular, имели свои собственные реализации обещаний.
 Param Singh17 июл. 2016 г., 20:32
@slebetman Можете ли вы дать мне простой пример реализации обещания?
 jfriend0017 июл. 2016 г., 20:37
@ParamSingh - в моем ответе уже есть две библиотеки обещаний для использования с ES5.
 slebetman17 июл. 2016 г., 20:26
ES5 не имеет обещаний как часть языка. Для ES5 обещания - это просто шаблон дизайна. В ES5 действительно много библиотек, которые реализуют много разных типов обещаний. Вы даже можете реализовать их самостоятельно, так как это всего лишь шаблон проектирования.

Ответы на вопрос(1)

Решение Вопроса

как jQuery или Angular, имели свои собственные и нестандартные реализации обещаний.

Популярными реализациями Promise для использования с ES5 являются Bluebird (который совместим со стандартом ES6) и Q (который изначально не был совместим со стандартом ES6 - хотя, похоже, движется в этом направлении) и RSVP.

Они также не являются настоящими полифиллами в том смысле, что они не исчезают, если присутствуют собственные обещания, потому что они добавляют дополнительные функции.

Есть некоторые чистые полифиллы для обещаний ES6. Вот тот, который является подмножеством RSVP:https://github.com/stefanpenner/es6-promise.

Есть причины использовать больше, чем полифилл, как вы можете прочитать здесь:Есть ли еще причины использовать библиотеки обещаний, такие как Q или BlueBird, теперь, когда у нас есть обещания ES6?

Запрашивать рекомендации по конкретной библиотеке полизаполнения здесь неуместно при переполнении стека, поэтому я не буду это комментировать.

 jfriend0017 июл. 2016 г., 20:36
@KirillSlatin - я уже перешел на «нестандартный и нестандартный», хотя я бы скорее тратил энергию на содержательный контент, чем на то, чтобы что-то придумать, никого не смущает.
 jfriend0017 июл. 2016 г., 20:36
@ParamSingh - Какое отношение имеет здесь этот кодовый блок?
 Param Singh17 июл. 2016 г., 20:49
@ jfriend00, да, пока вы подняли вопрос об обещаниях / A +, не могли бы вы немного рассказать об этом. Я сталкивался с этим стандартом, читая некоторые учебники в Интернете. Что это за стандарт? Это часть ES? И с каких пор он существует?
 Param Singh17 июл. 2016 г., 20:34
@ Jfriend00 Я нашел на Google, поиск этого кодового ручкиcodepen.io/tijmenbruggeman/pen/LVOqBq  Это вводит в заблуждение?
 guest27131417 июл. 2016 г., 20:40
 jfriend0017 июл. 2016 г., 20:51
@ParamSingh -Обещания / А + определяет поведение.then() обработчики для обещаний, что является одним из элементов общего стандарта обещаний. ES6 включил эту часть определения обещания в свою спецификацию.
 Param Singh17 июл. 2016 г., 20:37
@ jfriend00 На самом деле, кодовая ручка имеет название «Обещания ES5», что заставило меня задуматься о том, были ли обещания у es5!
 jfriend0017 июл. 2016 г., 20:40
@ParamSingh - стандарт ES5 не содержит обещаний. Мы уже говорили это. Браузеры долгое время выходили за пределы ES5 и внедряли части ES6, включая обещания. Но строгая реализация ES5 не имеет обещаний, и они никоим образом не являются частью стандарта ES5. Они были добавлены в стандарт в ES6. Существует отдельный стандарт Promises / A +, который определяет только обещания, которые существовали дольше, чем ES6.

Ваш ответ на вопрос