如何在 IE 中使用 AWS JavaScript promises?
How can I use AWS JavaScript promises in IE?
我正在尝试编写一个 JavaScript 浏览器应用程序,它需要 运行 在 IE 11 中。我想使用 AWS SDK 的 Promises 功能,但 IE 可以本身不支持承诺。
看起来 Bluebird 会这样做,但我不确定如何让 AWS 在浏览器中使用它。 AWS 推荐的方法:
<script src="vendorScripts/bluebird.min.js.css"></script>
<script src="vendorScripts/aws-sdk-2.192.0.min.js"></script>
... load a few other scripts...
<script>
AWS.config.setPromisesDependency( require('bluebird'));
</script>
失败并出现此错误:Uncaught ReferenceError: require is not defined
如果还没有,您需要 configure it to use an external promise library。注意部分:
In the browser, a library that implements promises and provides a global Promise namespace, (bluebird) should be loaded before the AWS SDK is loaded. The AWS SDK will then find the namespace and use it internally.
// AWS SDK was loaded after bluebird, set promise dependency
AWS.config.setPromisesDependency(Promise);
这是一个Fiddle。我在 Chrome 64 和 IE 11 中尝试过,没有看到错误。
When configured, it should support IE +10. I also found this AWS SDK Builder 研究这个很有趣。
如前所述,您可以使用外部托管的 Promise 库。但是,我在您的代码段中注意到您使用的是 .css 文件作为您的 JS 承诺包括:
<script src="vendorScripts/bluebird.min.js.css"></script>
^^^^
如果需要,您应该能够应用 William Fleming 的回答中提到的相同最终解决方案,并且仍然在本地托管 bluebird。
我正在尝试编写一个 JavaScript 浏览器应用程序,它需要 运行 在 IE 11 中。我想使用 AWS SDK 的 Promises 功能,但 IE 可以本身不支持承诺。
看起来 Bluebird 会这样做,但我不确定如何让 AWS 在浏览器中使用它。 AWS 推荐的方法:
<script src="vendorScripts/bluebird.min.js.css"></script>
<script src="vendorScripts/aws-sdk-2.192.0.min.js"></script>
... load a few other scripts...
<script>
AWS.config.setPromisesDependency( require('bluebird'));
</script>
失败并出现此错误:Uncaught ReferenceError: require is not defined
如果还没有,您需要 configure it to use an external promise library。注意部分:
In the browser, a library that implements promises and provides a global Promise namespace, (bluebird) should be loaded before the AWS SDK is loaded. The AWS SDK will then find the namespace and use it internally.
// AWS SDK was loaded after bluebird, set promise dependency
AWS.config.setPromisesDependency(Promise);
这是一个Fiddle。我在 Chrome 64 和 IE 11 中尝试过,没有看到错误。
When configured, it should support IE +10. I also found this AWS SDK Builder 研究这个很有趣。
如前所述,您可以使用外部托管的 Promise 库。但是,我在您的代码段中注意到您使用的是 .css 文件作为您的 JS 承诺包括:
<script src="vendorScripts/bluebird.min.js.css"></script>
^^^^
如果需要,您应该能够应用 William Fleming 的回答中提到的相同最终解决方案,并且仍然在本地托管 bluebird。