He visto preguntas similares, pero parece que ninguna de ellas es la misma circunstancia y ninguna de las sugerencias que probé funcionó. Necesito llamar a un POST desde dentro de un ciclo for, y quiero que el ciclo espere a que se complete la respuesta, porque necesita que se complete la iteración anterior antes de que pueda comenzar la siguiente. Intenté establecer async en falso para la llamada ajax, pero eso no funcionó porque necesito actualizar el DOM antes del comienzo del ciclo, después de cada iteración y finalmente al final, y cuando HTTP POST es sincrónico, simplemente salta directamente a la llamada ajax y bloquea el hilo para la respuesta. Aparentemente, este es el comportamiento esperado de JQuery, por lo que no creo que haya nada malo allí. Entonces, en este ejemplo de código, el proceso se ejecuta como se esperaba, pero el DOM nunca se actualiza, y si se elimina la declaración asíncrona, el proceso publica todas las iteraciones a la vez y el servidor no las procesa correctamente.
$("#form").on("submit", function(e){ e.preventDefault(); $("#submit").prop("disabled",true); $(".loader").css("display", "block"); var iterations = 10; const baseUrl = https://exampleapi.com; for (let i = 0; i < iterations; i++) { ```set post data here``` $.ajax({ url: baseUrl + "/endpoint", async: false, type: "POST", data: JSON.stringify(data), contentType: "application/json", }); $(".progress").text("completed " + i + " iterations"); } $(".loader").css("display", "none");¿Alguien puede ayudarme a entender qué estoy haciendo mal?