Tengo un bucle for que encierra una llamada ajax y estoy tratando de determinar el mejor método para pasar el índice del bucle for a la función de devolución de llamada. Aquí está mi código:pasando el índice de forzado a la función de devolución de llamada ajax (JavaScript)
var arr = [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010];
for (var i = 0; i < arr.length; i++)
{
$.ajaxSetup({ cache:false })
$.getJSON("NatGeo.jsp", { ZipCode: arr[i], Radius:
document.getElementById("radius").value, sensor: false },
function(data)
{
DrawZip(data, arr[i]);
}
);
}
En la actualidad, sólo el último valor de la matriz arr se pasa debido a la llamada AJAX asíncrona. ¿Cómo puedo pasar cada iteración de la matriz de arr a la función de devolución de llamada, además de ejecutar la llamada ajax sincrónicamente?
aunque esto es un duplicado de alrededor [30 otras preguntas] (http://stackoverflow.com/questions/tagged/javascript+closures+loops), es un problema muy común al usar funciones dentro de los bucles, y espero que no te importe que modifique uno de los etiquetas para aumentar esa cuenta hasta 31 :) – Anurag