

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Usar uma função de retorno de chamada anônimo
<a name="using-a-callback-function"></a>

Cada método de objeto de serviço que cria um objeto `AWS.Request` pode aceitar uma função de retorno de chamada anônimo como último parâmetro. A assinatura dessa função de retorno de chamada é:

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

Essa função de retorno de chamada é executada ao se retornar uma resposta bem-sucedida ou dados de erro. Se a chamada do método for bem-sucedida, o conteúdo da resposta estará disponível para a função de retorno de chamada no parâmetro `data`. Se a chamada não for bem-sucedida, os detalhes sobre a falha são fornecidos no parâmetro `error`.

Normalmente o código dentro da função de retorno de chamada testa um erro, que ele processa, caso seja retornado um erro. Se o erro não for retornado, o código recuperará os dados na resposta pelo parâmetro `data`. O formato básico da função de retorno de chamada é semelhante a este exemplo.

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

No exemplo anterior, os detalhes do erro ou dos dados retornados são registrados no console. Veja a seguir um exemplo que mostra uma função de retorno de chamada passada como parte da chamada de um método em um objeto de serviço.

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

## Acessar os objetos de solicitação e resposta
<a name="access-request-response"></a>

Dentro da função de retorno de chamada, a palavra-chave `this` do JavaScript refere-se ao objeto `AWS.Response` subjacente à maioria dos serviços. No exemplo a seguir, a propriedade `httpResponse` de um objeto `AWS.Response` é usada dentro de uma função de retorno de chamada para registrar os dados de resposta brutos e os cabeçalhos para ajudar com a depuração.

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

Além disso, como o objeto `AWS.Response` tem uma propriedade `Request` que contém o `AWS.Request` enviado pela chamada do método original, você também pode acessar os detalhes da solicitação que foi feita.