如何在IE中使用AWS JavaScript承诺?

时间:2018-03-04 20:24:53

标签: javascript amazon-web-services bluebird

我正在尝试编写JavaScript浏览器应用程序,它需要在IE 11中运行。我想使用AWS SDK的Promises功能,但IE本身并不支持promise。 / p>

看起来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>

发生此错误失败:未捕获的ReferenceError:未定义require

2 个答案:

答案 0 :(得分:2)

如果还没有,则需要configure it to use an external promise library。请注意部分:

  

在浏览器中,应该在加载AWS SDK之前加载实现promises并提供全局Promise命名空间的库(bluebird)。然后,AWS开发工具包将找到命名空间并在内部使用它。

// 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.我在研究这个问题时也发现这个AWS SDK Builder很有意思。

答案 1 :(得分:0)

正如已经指出的那样,您可以使用外部托管的Promise库。但是,我在你的代码片段中注意到你正在使用.css文件,因为你的JS承诺包括:

<script src="vendorScripts/bluebird.min.js.css"></script>
                                          ^^^^

如果需要,您应该可以应用William Fleming的回答中提到的相同的最终解决方案,并仍在本地托管蓝鸟。