我想知道JS promises是否是ES5的一部分?如果是这样,为什么它有时在较旧的浏览器中不起作用,我们必须为它们添加polyfill。另外,在这种情况下应该添加哪个polyfill,ES5还是ES6?我对此有一点困惑。
发布于 2016-07-18 02:27:39
ES5没有承诺。像jQuery或Angular这样的库有自己的自定义和非标准的promise实现。
与ES5一起使用的流行Promise实现有Bluebird (与ES6标准兼容)和Q(最初与ES6标准不兼容-尽管似乎正在朝着这个方向发展)和RSVP。
实际的多重填充也不是,因为它们添加了额外的功能,所以如果存在本机承诺,它们也不会受到影响。
对于ES6承诺,有一些纯粹的多填充。这里有一个是RSVP的子集:https://github.com/stefanpenner/es6-promise。
这里有多个使用polyfill的理由,你可以在这里阅读:Are there still reasons to use promise libraries like Q or BlueBird now that we have ES6 promises?
在Stack overflow上,询问特定polyfill库的建议被认为是离题的,所以我不会对此发表评论。
https://stackoverflow.com/questions/38424517
复制相似问题