ich die entsprechenden Seiten auf w3schools und anderen ähnlichen Fragen hier gelesen habe, kann aber nicht scheinen zu verstehen, was zu folgend bisschen falsch ist:setTimeout() -Methode in einer while-Schleife
var myfunc03 = function (i) {
document.getElementById('d01').innerHTML += 100-i+"<br>";
};
var myFunc01 = function() {
i=0;
while (i<100) {
setTimeout(myfunc03(i), 1000)
i++;
}
};
wenn
myFunc01();
wird ausgeführt, es gibt keine Pause und alle möglichen Werte für i werden sofort aufgelistet. Ist hier ein logischer Fehler?
Das natürlich auch seinen zweiten Fehler hervorhebt - eine modifizierte Variable zugreift ('I') aus einem Verschluss. Wenn das Zeitlimit ausgelöst wird, wird "i" auf den letzten Wert geändert. –
'setTimeout' erwartet eine' Funktion' als ersten Parameter, aber Sie übergeben das * Ergebnis * von 'myfunc03' (was' unterdefiniert' ist, weil Sie es aufrufen) – haim770