ansango / wiki
 ·  2 min de lectura

Usando Ajax con Async Await

Cómo usar AJAX con async/await en JavaScript: migración desde jQuery, manejo de errores y promesas

Este contenido tiene más de un año y puede estar desactualizado.

En la época de ajax 🧓

Antes teníamos este tipo de funciones para consumir datos mediante ajax

function myAjax() {
  $.ajax({
    url: ajaxurl,
    type: "POST",
    data: {
      stuff: "here",
    },
    success: function (data) {
      //Las locas respuestas de las peticiones anidadas van aquí
      var response = data;
    },
    error: function (jqXHR, textStatus, errorThrown) {
      // Vacio casi siempre 😆
    },
  });

  return response;
}

Código síncrono vs código asíncrono

¿Cómo Usar async/await con jQuery? 🤹

Si partimos del anterior código, un ejemplo de async/await con ajax podría set:

async function myAjax(param) {
  const result = await $.ajax({
    url: ajaxurl,
    type: "POST",
    data: param,
  });

  return result;
}

Y es en el return donde devolvemos el resultado de la petición si no hubiera errores. Para capturar los errores podemos hacer lo siguiente:

async function myAjax(param) {
  let result;

  try {
    result = await $.ajax({
      url: ajaxurl,
      type: "POST",
      data: param,
    });

    return result;
  } catch (error) {
    console.error(error);
  }
}

Okay fácil ¿no? ¿Cómo consumimos está función maravillosa? 😎 Así:

// En otra parte del código, dentro de una función asíncrona
const data = await myAjax();

Otra opción sería usar promesas:

myAjax().then((data) => {
  console.info("Response:", data);
});

Las promesas no son una mala opción, y pueden parecer más limpias o set más fácil trabajar con ellas, depende del contexto.

Espero que te haya gustado este artículo. ❤️