익명 콜백 함수 사용 - AWS SDK for JavaScript

곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다. AWS SDK for JavaScript v3로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

익명 콜백 함수 사용

AWS.Request 객체를 생성하는 각 서비스 객체 메서드는 익명 콜백 함수를 마지막 파라미터로 수락할 수 있습니다. 이 콜백 함수의 서명은 다음과 같습니다.

function(error, data) { // callback handling code }

이 콜백 함수는 성공적인 응답 또는 오류 데이터 반환 시 실행됩니다. 메서드 호출에 성공하면 data 파라미터에서 응답 내용을 콜백 함수에 사용할 수 있습니다. 호출에 실패하면 error 파라미터에 자세한 실패 정보가 제공됩니다.

일반적으로 콜백 함수 내 코드는 오류가 있는지 테스트하는데, 오류가 반환되면 처리합니다. 오류가 반환되지 않으면 코드는 응답의 data 파라미터에서 데이터를 검색합니다. 콜백 함수의 기본 형식은 다음 예제와 같습니다.

function(error, data) { if (error) { // error handling code console.log(error); } else { // data handling code console.log(data); } }

이전 예제에서는 오류 또는 반환되는 데이터에 대한 자세한 내용이 콘솔에 로깅됩니다. 다음은 서비스 객체에 대한 메서드 호출의 일부로 전달되는 콜백 함수를 보여주는 예제입니다.

new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) { if (error) { console.log(error); // an error occurred } else { console.log(data); // request succeeded } });

요청 및 응답 객체에 액세스

콜백 함수 내에서 JavaScript 키워드 this는 대부분 서비스의 경우 기본 AWS.Response 객체를 가리킵니다. 다음 예제에서는 디버깅을 지원하기 위해 AWS.Response 객체의 httpResponse 속성이 콜백 함수 내에서 사용되어 원시 응답 데이터 및 헤더를 로깅합니다.

new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) { if (error) { console.log(error); // an error occurred // Using this keyword to access AWS.Response object and properties console.log("Response data and headers: " + JSON.stringify(this.httpResponse)); } else { console.log(data); // request succeeded } });

또한 AWS.Response 객체에는 원래 메서드 호출에서 보낸 AWS.Request가 포함된 Request 속성이 있으므로 수행된 요청에 대한 세부 정보에 액세스할 수도 있습니다.