Anunciamos
Uso de una función de devolución de llamada anónima
Cada método de objeto de servicio que crea un objeto AWS.Request
puede aceptar una función de devolución de llamada anónima como último parámetro. La firma de dicha función de devolución de llamada es:
function(error, data) { // callback handling code }
Esta función de devolución de llamada se ejecuta cuando se devuelve una respuesta correcta o datos de error. Si la llamada al método se realiza correctamente, el contenido de la respuesta está disponible en la función de devolución de llamada en el parámetro data
. Si la llamada no se realiza correctamente, se proporcionan los detalles sobre el error en el parámetro error
.
Normalmente el código contenido en la función de devolución de llamada realiza una prueba para detectar errores. Si el resultado de la prueba devuelve errores, los procesará. Si no se devuelve ningún error, el código recuperará los datos de la respuesta en el parámetro data
. La forma básica de la función de devolución de llamada es similar a la de este ejemplo.
function(error, data) { if (error) { // error handling code console.log(error); } else { // data handling code console.log(data); } }
En el ejemplo anterior, los detalles del error o de los datos devueltos se registran en la consola. A continuación se muestra un ejemplo que muestra una función de devolución de llamada transferida como parte de una llamada a un método en un objeto de servicio.
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 } });
Acceso a los objetos de solicitud y respuesta
Dentro de la función de devolución de llamada, la palabra clave de JavaScript this
se refiere al objeto AWS.Response
subyacente para la mayoría de los servicios. En el ejemplo siguiente, la propiedad httpResponse
de un objeto AWS.Response
se utiliza dentro de una función de devolución de llamada para registrar los datos de respuesta sin procesar y los encabezados para ayudar con la depuración.
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 } });
Además, debido a que el objeto AWS.Response
tiene una propiedad Request
que contiene la AWS.Request
que se ha enviado a través de la llamada al método original, también puede obtener acceso a los detalles de la solicitud que se realizó.