Estoy tratando de obtener múltiples respuestas del servidor. Para eso necesito que se envíen todas las solicitudes (no me importa el orden) y obtener todas las respuestas antes de devolverlas. Este es mi código:
async function getResponse(URL){ var xhttp; xhttp=new XMLHttpRequest(); xhttp.responseType = "json" xhttp.open("GET", URL, true); xhttp.send(); xhttp.onreadystatechange = async function() { if (this.readyState == 4 && this.status == 200) { response = await this.response console.log("response") console.log(response) return response } }; } async function getFilteredDiagram(){ let requests = ['/?s=1&a=2','/?s=3'] var responses = await Promise.all(requests.map(async (r) => {return await getResponse(r)})) console.log("all_responses") console.log(responses) }Lo que pasa es que estoy haciendo console.logs para ver qué está pasando y obtengo:
all_responses: [undefined,undefined] response: [resp1] response: [resp1,resp2] Es decir, está aplicando el mapeo sobre la lista, antes de obtener una respuesta de getResponse . Necesito que estén en el otro lado.
¿Alguien me puede ayudar?