代码之家  ›  专栏  ›  技术社区  ›  Jesse Barnum

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

  •  1
  • Jesse Barnum  · 技术社区  · 6 年前

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

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

    失败,出现以下错误:未捕获引用错误:未定义require

    2 回复  |  直到 6 年前
        1
  •  2
  •   William Fleming    6 年前

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

    在浏览器中,应在加载AWS SDK之前加载实现承诺并提供全局承诺命名空间(bluebird)的库。然后,AWS SDK将找到名称空间并在内部使用它。

    // 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 研究这一点时很有趣。

        2
  •  0
  •   Adam Mazzarella    6 年前

    如前所述,您可以使用外部托管的Promise库。然而,我在您的代码片段中注意到您正在使用。JS承诺的css文件包括:

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

    如果需要的话,你应该能够应用威廉·弗莱明(WilliamFleming)的答案中提到的同样的最终解决方案,并且仍然在本地寄养蓝知更鸟。