Estoy tratando de devolver el objeto requerido de la matriz de objetos donde el índice de la matriz se pasa como parámetro a la función de devolución de llamada. Por ejemplo, si quiero el objeto en el índice de matriz 0, llamo a getInfo de esta manera getInfo(0, data) . Pero la función de devolución de llamada solo devuelve el índice y no el valor. Traté de probar lo mismo con una función simple llamada myfunc pero eso me da lo que quiero. ¿Cuál es el problema aquí?
este es mi codigo
const getInfo = (resource, callback) => { let request = new XMLHttpRequest(); request.addEventListener('readystatechange', () => { if(request.readyState === 4 && request.status === 200 ) { const data = JSON.parse(request.responseText); console.log(data[resource]); myfunc(resource, data[resource]); callback(resource, data[resource]); } }); request.open('GET','values.json'); request.send(); }; const myfunc = (val,arr) =>{ console.log(val,arr); } getInfo(0, data => { console.log(data); getInfo(2, data => { console.log(data); getInfo(1, data => { console.log(data); }); }); });valores.json
[ {"name" : "MM", "height" : "5 ft 2 inches"}, {"name" : "DD", "height" : "5 ft 3 inches"}, {"name" : "AA", "height" : "5 ft 5 inches"} ]Salida de consola
su devolución de llamada tiene solo un parámetro, pero está enviando dos argumentos al llamar a la devolución de llamada
getInfo(0, (index,data) => { console.log(data); getInfo(2, (index,data) => { console.log(data); getInfo(1, (index,data) => { console.log(data); }); }); });