Witam, posiadam następujący kod:
function funkcja()
{
for(let i=0; i<400; i++)
{
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(this.status == 200)
{
if(document.querySelector(`#field${i}`)) document.querySelector(`#field${i}`).innerHTML = this.responseText;
}
};
xhr.open('GET', `field_load.php?f=${i}`, true);
xhr.send();
}
}
ale chciałbym, aby gdy warunek if
if(document.querySelector(`#field${i}`))
się nie spełni, została przerwana funkcja, lecz po zapisaniu
if(document.querySelector(`#field${i}`)) document.querySelector(`#field${i}`).innerHTML = this.responseText;
else break;
dostaję błąd: Uncaught SyntaxError: Illegal break statement
W jaki sposób mogę to rozwiązać?
EDIT: Problem był w tym, że elementy #field rzeczywiście były utworzone przy sprawdzaniu, lecz zapytania zostały asynchronicznie wysłane i po zniknięciu tych pól, próbowały uzupełnić nieistniejące pola
ROZWIĄZANIE:
for(let i=0; i<400; i++)
{
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(this.status == 200 && this.readyState == 4)
{
//current_window !== 'field' kiedy naciśnięto przycisk od usuwania pól
if(current_window !== 'field') { console.log('PRZERWANO'); return;}
document.querySelector(`#field${i}`).innerHTML = this.responseText;
console.log(`I: ${i}`);
}
};
xhr.open('GET', `field_load.php?f=${i}`, true);
xhr.send();
}