我正在尝试编写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
答案 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的回答中提到的相同的最终解决方案,并仍在本地托管蓝鸟。