使用 JavaScript 承诺 - AWS SDK for JavaScript

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

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

使用 JavaScript 承诺

使用服务客户端的 AWS SDK for JavaScript 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 管理这些单独的异步方法调用,则可以创建使用 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 支持

对原生 JavaScript 承诺 (ECMAScript2015) 的支持取决于执行代码的 JavaScript引擎和版本。为了帮助确定您的代码需要运行的每个环境中对 Prom JavaScript ise 的支持,请参阅上的ECMAScript兼容性表 GitHub。