我最近下载了一个使用 ES6 Promises 的库。由于我想部署到不支持 Promises 的浏览器,我还下载了一个polyfill。
因为无论如何我都包含了 jQuery,所以我考虑为 Promise 编写一个 polyfill,它在内部使用 jQuery 的 Deferred。
我编写了这个简单的 polyfill,足以满足我的特定用例:
window.Promise = function(cb){
var promise = $.Deferred();
cb(promise.resolve, promise.reject);
return promise.promise();
};
问题在于它没有涵盖整个规范(认为Promise.all()
缺少)。
在我投入大量时间之前,我想知道是否可以使用 jQuery 的 Deferred 为 Promise 编写完整的 polyfill。还是有一些无法复制的功能?