

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 o objeto de resposta
<a name="the-response-object"></a>

Depois de um método de objeto de serviço ser chamado, ele retornará um objeto `AWS.Response` passando para sua função de retorno de chamada. Você pode acessar o conteúdo da resposta usando as propriedades do objeto `AWS.Response`. Existem duas propriedades do objeto `AWS.Response` que você usa para acessar o conteúdo da resposta:
+ `data`Propriedade da 
+ `error`Propriedade da 

Ao usar o mecanismo de retorno de chamada padrão, essas duas propriedades serão fornecidas como parâmetros na função de retorno de chamada anônimo, conforme mostrado no exemplo a seguir.

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

## Acessar dados retornados no objeto de resposta
<a name="response-data-property"></a>

A propriedade `data` do objeto `AWS.Response` contém os dados serializados retornados pela solicitação de serviço. Quando a solicitação for bem-sucedida, a propriedade `data` conterá um objeto com um mapa para os dados retornados. A propriedade `data` pode ser nula, caso ocorra um erro.

Aqui está um exemplo de como chamar o método `getItem` de uma tabela do DynamoDB para recuperar o nome do arquivo de um arquivo de imagem para usar como parte de um jogo.

```
// Initialize parameters needed to call DynamoDB
var slotParams = {
    Key : {'slotPosition' : {N: '0'}},
    TableName : 'slotWheels',
    ProjectionExpression: 'imageFile'
};

// prepare request object for call to DynamoDB
var request = new AWS.DynamoDB({region: 'us-west-2', apiVersion: '2012-08-10'}).getItem(slotParams);
// log the name of the image file to load in the slot machine
request.on('success', function(response) {
    // logs a value like "cherries.jpg" returned from DynamoDB
    console.log(response.data.Item.imageFile.S);
});
// submit DynamoDB request
request.send();
```

Para este exemplo, a tabela do DynamoDB é uma pesquisa de imagens que mostram os resultados de uma máquina caça-níqueis conforme especificado pelos parâmetros em `slotParams`.

Após uma chamada bem-sucedida do método `getItem`, a propriedade `data` do objeto `AWS.Response` conterá um objeto `Item` retornado por DynamoDB. Os dados retornados são acessados de acordo com o parâmetro `ProjectionExpression` da solicitação, que neste caso significa o membro `imageFile` do objeto `Item`. Como o membro `imageFile` contém um valor de string, você acessa o nome do arquivo da imagem em si por meio do valor do membro-filho de `S` de `imageFile`.

## Paginar pelos dados retornados
<a name="response-paged-data"></a>

Às vezes, o conteúdo da propriedade `data` retornada por uma solicitação de serviço abrange várias páginas. Você pode acessar a próxima página de dados chamando o método `response.nextPage`. Esse método envia uma nova solicitação. A resposta da solicitação pode ser capturada com um retorno de chamada ou com listeners de sucesso e erro.

Você pode verificar se os dados retornados por uma solicitação de serviço têm páginas adicionais de dados chamando o método `response.hasNextPage`. Esse método retorna um valor booleano para indicar se a chamada `response.nextPage` retorna dados adicionais.

```
s3.listObjects({Bucket: 'bucket'}).on('success', function handlePage(response) {
    // do something with response.data
    if (response.hasNextPage()) {
        response.nextPage().on('success', handlePage).send();
    }
}).send();
```

## Acessar informações de erro de um objeto de resposta
<a name="response-error-property"></a>

A propriedade `error` do objeto `AWS.Response` contém os dados de erro disponíveis no caso de um erro de serviço ou de transferência. O erro retornado assume a forma a seguir.

```
{ code: 'SHORT_UNIQUE_ERROR_CODE', message: 'a descriptive error message' }
```

No caso de um erro, o valor da propriedade `data` é `null`. Se você lidar com eventos que estejam em estado de falha, verifique sempre se a propriedade `error` foi definida antes de tentar acessar o valor da propriedade `data`.

## Acessar o objeto de solicitação de origem
<a name="response-request-property"></a>

A propriedade `request` fornece acesso ao objeto `AWS.Request` de origem. Ela pode ser útil para fazer referência ao objeto `AWS.Request` original para acessar os parâmetros originais que enviou. No exemplo a seguir, a propriedade `request` é usada para acessar o parâmetro `Key` da solicitação de serviço original.

```
s3.getObject({Bucket: 'bucket', Key: 'key'}).on('success', function(response) {
   console.log("Key was", response.request.params.Key);
}).send();
```