Es gibt eine globale Variable window.listNodes
, die ein Array ist. Diese Variable wird alle 3 Sekunden aktualisiert und wird sequenziell gefüllt.JavaScript: Eine Funktion anhalten und auf eine globale Variable warten
Eine weitere Funktion onOpen()
wird vom Benutzer ausgelöst und muss die globale Variable window.listNodes
mit 3 Elementen haben, nicht weniger. Was ich tun möchte: Wenn die globale Variable keine .length
gleich 3 hat, dann wartet das Programm, dass der andere Teil des Codes window.listNodes
füllt und dann wieder die Funktion onOpen()
beginnt.
socket.onopen = function onOpen() {
if (window.listNodes.length === 3) {
// Do something
} else {
// Wait and when window.listNodes.length === 3:
onOpen();
}
});
};
Gibt es einen einfachen Weg, es zu tun? Ich habe es mit der Funktion setTimeOut()
versucht und mit einer Generatorfunktion und dem Schlüsselwort yield
bin ich aber gescheitert.
Vielen Dank für Ihre wertvolle Hilfe :)
_Ich habe es mit der Funktion 'setTimeOut'_ versucht, die ich in meiner Antwort gezeigt habe, wie dies mit' setTimeout' erreicht werden kann. Wie hast du es gemacht? –