我正在尝试在 IE9+ 上实现 native promise ,但 Internet Explorer 似乎无法识别“Promise”类/对象。 我在http://caniuse.com/#search=Promise中搜索并发现 IE 没有 Promise 对象。 但这很奇怪,因为 jQuery 和 Angular 与 Promise 一起工作并且在 IE9+ 中工作。 也许他们正在实现他们自己的 promise ? ** 我可以实现我自己的 promise 吗?**
最佳答案
什么是“ native ”
原生意味着它是在浏览器的代码库中编写的,而不是用户级代码。为了在 IE9 中原生实现 Promise,您必须从 Microsoft 获取 IE9 源代码的副本,对其进行编码、编译和分发。虽然这是可行的,但这并不是一个非常可行的选择。
今天使用 Promise
另一方面,用户级别中存在多个 Promise 库。完全有可能实现您自己的 promise 实现 - here is a great blog post on how .
您可以自由地包含像 bluebird 这样的库( bluebird ) 或 Q 满足此 API 并将在未来继续与 ES6 Promise 良好配合。值得一提的是,Bluebird 例如在 IE6+ 上运行,因此您的情况应该没有问题。
例如here is Angular's implementation这是 jQuery's implementation - 我认为 Angular 更具可读性。
标准
另请注意,与上面留下的评论相反,Promises 是由 Promises/A+ 规范标准化的,像 Angular 这样的库符合,像 jQuery 这样的库正在努力符合,并且可能会在下一个版本中实现。原生 Promise 也符合该标准并对其进行超集。
关于javascript - 有没有办法在 ie9+ 中实现 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27835687/