Недавно я скачал библиотеку, использующую обещания ES6. Поскольку я хочу выполнить развертывание в браузерах, которые не поддерживают промисы, я также загрузил polyfill.
Поскольку у меня в любом случае есть jQuery, я подумал о написании полифилла для Promise, который внутренне использует Deferred jQuery.
Я написал этот простой полифилл, которого достаточно для моего конкретного случая использования:
window.Promise = function(cb){
var promise = $.Deferred();
cb(promise.resolve, promise.reject);
return promise.promise();
};
Проблема с этим в том, что он не охватывает всю спецификацию (думает, что Promise.all()
отсутствует).
Прежде чем я потрачу много времени на это, я хотел бы знать, возможно ли написать полный полифилл для Promise, используя Deferred jQuery. Или есть некоторые функции, которые нельзя воспроизвести?
when
,done
,callback
и т. д. Возможно составить блок-схему предполагаемой реализации с документированием целей реализации проекта. Краткий фрагмент, использующий js без jquery, который включаетwhen
иdone
;.then
— это собственное обещание, поддерживающее цепочку stackoverflow.com/a/23587868. Если возможно, можете описать, какие функции обработки будут предоставлены? Чтоpromise
, реализация jquerydeferred
не обеспечивает? Спасибо - person guest271314   schedule 02.09.2014