如何在 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。