Какие аспекты библиотеки обещаний покрывают оболочку spec не? Какие вещи различаются между реализациями?
Просьба проиллюстрировать примеры фактических различий (например, между Bluebird и Q).
Какие аспекты библиотеки обещаний покрывают оболочку spec не? Какие вещи различаются между реализациями?
Просьба проиллюстрировать примеры фактических различий (например, между Bluebird и Q).
Почти все. Спецификация Promises/A + предназначена для обеспечения совместимости с обещаниями, она построена так, что обеими библиотеками (а теперь и родными promises) могут разговаривать друг с другом. Идея заключается в том, чтобы можно было предсказать, как выглядит обещание, и определить, как promises ассимилируются другими библиотеками.
Указание спецификации:
В этой спецификации подробно описывается поведение метода
then
, обеспечивающее совместимую базу, для которой можно обеспечить выполнение всех реализаций, совместимых с Promises/A+. Таким образом, спецификация должна считаться очень стабильной. Хотя организация Promises/A + может иногда пересматривать эту спецификацию с небольшими изменениями, совместимыми с обратной записью, для обращения к вновь открывшимся угловым случаям, мы будем интегрировать большие или отсталые несовместимые только после тщательного рассмотрения, обсуждения и тестирования. Наконец, спецификация ядра Promises/A + не занимается тем, как создавать, выполнять или отклонять promises, выбирая вместо этого сосредоточиться на предоставлении интероперабельного, а затем метода. Будущая работа в сопутствующих спецификациях может касаться этих предметов.
Не распространяются следующие действия:
.all
).Bluebird и Q, например, являются полностью жалобами Promises/A +, но различаются по многим из них:
this
к this
с помощью .bind
и применять методы массива (.map
, .reduce
, .filter
и т.д.).