const tournamentsList = document.getElementById('tournaments-name-list'); const request = new XMLHttpRequest(); request.open( "GET", "https://cricheroes.in/api/v1/tournament/get-tournaments/-1?pagesize=12&status=-1" ); let objFromJson = ""; request.onreadystatechange = () => { if (request.readyState === 4 && request.status === 200) { objFromJson = JSON.parse(request.response) console.log(objFromJson) for (let i = 0; i < objFromJson.data.length; i++) { tournamentsList.innerHTML += ` <li class="tournaments-name">${objFromJson.data[i].name}</li>`; } } }; request.send(); let url = ""; url = objFromJson.page.next; console.log(url);Quiero que las últimas tres líneas de código (desde la definición de la variable let hasta el cierre de sesión) se ejecuten después de la ejecución de la función de devolución de llamada del evento onreadystatechange. ¿Cómo puedo conseguir esto?
from readyState === 4 su ejecución continuará, lo que significa que obtuvo los datos ahora puede continuar su lógica desde allí. Su pregunta tal vez parece incompleta. Si está tratando de modificar algún atributo href o src, también debe escribir ese código setAttribute correspondiente al elemento que desea cambiar. El siguiente código solo asignará valor a la URL
const tournamentsList = document.getElementById('tournaments-name-list'); const request = new XMLHttpRequest(); let url = ""; request.open( "GET", "https://cricheroes.in/api/v1/tournament/get-tournaments/-1?pagesize=12&status=-1" ); let objFromJson = ""; request.onreadystatechange = () => { if (request.readyState === 4 && request.status === 200) { objFromJson = JSON.parse(request.response) console.log(objFromJson) for (let i = 0; i < objFromJson.data.length; i++) { tournamentsList.innerHTML += ` <li class="tournaments-name">${objFromJson.data[i].name}</li>`; } url = objFromJson.page.next console.log(url); } }; request.send();