Par*_*ngh 17 javascript promise es6-promise
我想知道JS承诺是否是es5的一部分?如果是这样,为什么它有时在旧版浏览器中不起作用,我们必须为它添加一个polyfill.另外,在这种情况下应该添加哪种polyfill,es5 one或es6?我对此有点困惑.
jfr*_*d00 37
ES5没有承诺.像jQuery或Angular这样的库有自己的自定义和非标准的promise实现.
与ES5一起使用的流行Promise实现是Bluebird(与ES6标准兼容)和Q(最初与ES6标准不兼容 - 尽管似乎正朝着这个方向发展)和RSVP.
实际的polyfill也不是因为它们添加了额外的功能,所以如果存在本机承诺,它们就不会偏离.
ES6承诺有一些纯粹的polyfill.这是RSVP的一个子集:https://github.com/stefanpenner/es6-promise.
有理由使用多个填充物,你可以在这里阅读:由于我们有ES6承诺,是否还有理由使用Q或BlueBird等承诺库?
询问特定polyfill库的建议在Stack溢出时被认为是偏离主题的,因此我不会对此发表评论.