

La versión 2 de AWS SDK para JavaScript ha llegado al final del soporte. Se recomienda que migre a [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalles e información adicionales sobre cómo realizar la migración, consulte este [anuncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Uso del objeto de respuesta
<a name="the-response-object"></a>

Después de llamar a un método objeto de servicio, este devuelve un objeto `AWS.Response` transfiriéndolo a su función de devolución de llamada. Puede obtener acceso al contenido de la respuesta a través de las propiedades del objeto `AWS.Response`. Puede usar dos propiedades del objeto `AWS.Response` para obtener acceso al contenido de la respuesta:
+ `data`Propiedad 
+ `error`Propiedad 

Cuando se utiliza el mecanismo de devolución de llamada estándar, estos dos propiedades se proporcionan como parámetros en la función de devolución de llamada anónima tal y como se muestra en el siguiente ejemplo.

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

## Acceso a los datos devueltos en el objeto de respuesta
<a name="response-data-property"></a>

La propiedad `data` del objeto `AWS.Response` contiene los datos serializados devueltos por la solicitud de servicio. Cuando la solicitud se realiza correctamente, la propiedad `data` incluye un objeto que contiene un mapa a los datos devueltos. La propiedad `data` puede ser un valor nulo si se produce un error.

A continuación se muestra un ejemplo llamada al método `getItem` de una tabla de DynamoDB para recuperar el nombre de un archivo de imagen y utilizarlo como parte de un juego.

```
// 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();
```

En este ejemplo, la tabla de DynamoDB es una búsqueda de imágenes que muestra los resultados de una máquina tragaperras según lo especificado por los parámetros en `slotParams`.

Tras una llamada del método `getItem` realizada correctamente, la propiedad `data` del objeto `AWS.Response` contiene un objeto `Item` devuelto por DynamoDB. El acceso a los datos devueltos se efectúa de acuerdo con el parámetro `ProjectionExpression` de la solicitud, que en este caso significa el miembro `imageFile` del objeto `Item`. Debido a que el miembro `imageFile` contiene un valor de cadena, el usuario obtiene acceso al nombre de archivo de la misma imagen a través del valor del elemento secundario `S` de `imageFile`.

## Paginación por los datos devueltos
<a name="response-paged-data"></a>

En ocasiones el contenido de la propiedad `data` que una solicitud de servicio devuelve abarca varias páginas. Puede obtener acceso a la siguiente página de datos llamando al método `response.nextPage`. Este método envía una nueva solicitud. La respuesta de la solicitud se puede capturar con una devolución de llamada o con agentes de escucha de éxito y error.

Puede comprobar si los datos devueltos por una solicitud de servicio tienen páginas de datos adicionales llamando al método `response.hasNextPage`. Este método devuelve un valor booleano para indicar si la llamada a `response.nextPage` devuelve datos adicionales.

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

## Acceso a información de error desde un objeto de respuesta
<a name="response-error-property"></a>

La propiedad `error` del objeto `AWS.Response` contiene los datos de error disponibles en caso de que se produzca un error de servicio o un error de transferencia. El error devuelto adopta el siguiente formato.

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

En caso de que se produzca un error, el valor de la propiedad `data` es `null`. Si gestiona eventos que pueden estar en un estado de error, compruebe siempre si la propiedad `error` se estableció antes de intentar obtener acceso al valor de la propiedad `data`.

## Acceso al objeto de solicitud de origen
<a name="response-request-property"></a>

La propiedad `request` proporciona acceso al objeto `AWS.Request` de origen. Puede ser útil para hacer referencia al objeto `AWS.Request` original para obtener acceso a los parámetros originales que ha enviado. En el ejemplo siguiente, la propiedad `request` se utiliza para obtener acceso al parámetro `Key` de la solicitud de servicio original.

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