Verwenden von JavaScript Promises - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS SDK for JavaScriptVersion 3 (V3).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von JavaScript Promises

Verwenden Sie die Service-ClientsAWS SDK for JavaScriptv3-Methode (ListTablesCommand) um den Service-Aufruf zu tätigen und asynchrone Flows zu verwalten, anstatt Callbacks zu verwenden. Im folgenden Beispiel wird veranschaulicht, wie Sie die Namen Ihrer Amazon DynamoDB DynamoDB-Tabellen inus-west-2aus.

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); });

Koordinieren mehrerer Promises

In einigen Fällen muss Ihr Code mehrere asynchrone Aufrufe ausführen, die nur dann eine Aktion erfordern, wenn alle erfolgreich zurückgegeben wurden. Wenn Sie diese einzelnen asynchronen Methodenaufrufe mit Promises verwalten, können Sie ein zusätzliches Promise erstellen, das die all-Methode verwendet.

Diese Methode erfüllt dieses übergeordnete Promise-Objekt, falls und wenn das an die Methode übergebene Array der Promises erfüllt ist. Die Callback-Funktion wird als Array von Werten der Promises übergeben, die an die all-Methode übergeben werden.

Im folgenden Beispiel wirdAWS Lambda-Funktion muss drei asynchrone Aufrufe an Amazon DynamoDB ausführen, kann jedoch nur abgeschlossen werden, nachdem die Promises für die einzelnen Aufrufe erfüllt wurden.

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;

Browser- und Node.js Unterstützung für Promises

Ob native JavaScript-Promises (ECMAScript 2015) unterstützt werden, hängt von der JavaScript-Engine und -Version ab, in der Ihr Code ausgeführt wird. Hilfreiche Informationen zur Bestimmung der Unterstützung für JavaScript-Promises in jeder Umgebung, in der Ihr Code ausgeführt werden muss, finden Sie imECMASCRIPT-Kompatibilitätstabelleauf GitHub: