

 [AWS SDK for JavaScript V3 API 참조 안내서](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)는 AWS SDK for JavaScript 버전 3(V3)의 모든 API 작업을 자세히 설명합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# JavaScript Promise 사용
<a name="using-promises"></a>

서비스 클라이언트의 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 조정
<a name="multiple-promises"></a>

경우에 따라 코드는 여러 비동기식 호출이 모두 성공적으로 반환된 경우에만 조치가 필요한 여러 비동기식 호출을 수행해야 합니다. promise를 사용하지 않고 개별 비동기 메서드 호출을 관리하는 경우 `all` 메서드를 사용하는 추가 promise를 생성할 수 있습니다.

이 메서드는 메서드에 전달한 promise 배열이 이행되는 경우 umbrella promise를 이행합니다. 콜백 함수는 `all` 메서드에 전달되는 promises의 값 배열로 전달됩니다.

다음 예제에서 AWS Lambda 함수는 Amazon DynamoDB에 대해 세 개의 비동기 호출을 수행해야 하지만 각 호출에 대한 promise가 이행된 후에만 완료될 수 있습니다.

```
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 promise(ECMAScript 2015)에 대한 지원은 모드가 실행되는 JavaScript 엔진 및 버전에 따라 달라집니다. 코드를 실행해야 하는 각 환경에서 JavaScript promise에 대한 지원을 확인하려면 GitHub의 [ECMAScript compatibility table](https://compat-table.github.io/compat-table/es6/)을 참조하세요.