AWS SDK for JavaScript V3 API參考指南詳細描述 AWS SDK for JavaScript 第 3 版 (V3) 的所有API操作。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 JavaScript 承諾
使用服務用戶端的 AWS SDK for JavaScript v3 方法 ( 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;
瀏覽器和 Node.js 對承諾的支援
原生 JavaScript 承諾的支援 (ECMAScript 2015) JavaScript取決於程式碼執行的引擎和版本。若要協助判斷程式碼需要執行的每個環境中對 JavaScript 承諾的支援,請參閱上的ECMAScript相容性資料表