使用JavaScript许诺 - AWS SDK for JavaScript

帮助我们改进AWS SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:AWS SDK for JavaScriptV3 API 参考指南详细描述了所有的 API 操作AWS SDK for JavaScript版本 3 (V3)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用JavaScript许诺

使用服务客户端的AWS SDK for JavaScriptv3 方法 (ListTablesCommand)调用服务并管理异步流,而不使用回调。以下示例演示如何在中获取 Amazon DynamoDB 表的名称。us-west-2.

import { DynamoDBClient, ListTablesCommand } from "@aws-sdk/client-dynamodb"; const dbClient = new DynamoDBClient({ region: 'us-west-2' }); dbClient .listtables(new ListTablesCommand({})) .then(response => { console.log(response.TableNames.join('\n')); }) .catch((error) => { console.error(error); });

协调多个承诺

在某些情况下,您的代码必须进行多个异步调用,这些调用只有在它们都成功返回时才需要执行操作。如果您使用 promise 管理这些单独的异步方法调用,则可以创建使用 all 方法的额外 promise。

此方法只有在执行了您传递到方法中的 promise 数组时,才会执行此伞形 promise。回调函数将 promise 的值数组传递到 all 方法。

在下面的示例中,AWS Lambda函数必须对 Amazon DynamoDB 进行三个异步调用,但只有在履行了各个调用的承诺后才能完成。

const values = await Promise.all([firstPromise, secondPromise, thirdPromise]); console.log("Value 0 is " + values[0].toString); console.log("Value 1 is " + values[1].toString); console.log("Value 2 is " + values[2].toString); return values;

Promise 的浏览器和 Node.js 支持

对本机的 SupportJavaScript承诺(ecmasScript 2015)取决于JavaScript引擎和执行代码的版本。为了帮助确定支持JavaScript承诺在您的代码需要运行的各个环境中,请参阅ecmasScript 兼容性表上GitHub.