使用 JavaScript 承诺 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

使用 JavaScript 承诺

使用服务客户端的 Amazon 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 方法。

在以下示例中,一个 Amazon 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 承诺(ECMAScript 2015)的支持取决于执行代码的 JavaScript引擎和版本。为了帮助确定您的代码需要运行的每个环境中对 JavaScript 承诺的支持,请参阅上的 ECMAScript 兼容性表。 GitHub