

 [适用于 JavaScript 的 AWS SDK V3 API 参考指南](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)详细描述了 适用于 JavaScript 的 AWS SDK 版本 3 (V3) 的所有 API 操作。

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

# 使用 JavaScript 承诺
<a name="using-promises"></a>

使用服务客户端的 适用于 JavaScript 的 AWS SDK v3 方法 (`ListTablesCommand`) 进行服务调用和管理异步流，而不是使用回调。以下示例演示如何获取 `us-west-2` 中您的 Amazon DynamoDB 表的名称。

```
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
<a name="multiple-promises"></a>

在某些情况下，您的代码必须进行多个异步调用，这些调用只有在它们都成功返回时才需要执行操作。如果您使用 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 支持
<a name="browser-node-promise-support"></a>

对原生 JavaScript 承诺 (ECMAScript 2015) 的支持取决于执行代码的 JavaScript引擎和版本。为了帮助确定您的代码需要运行的每个环境中对 Prom JavaScript ise 的支持，请参阅上的[ECMAScript 兼容性表](https://compat-table.github.io/compat-table/es6/) GitHub。