Ich habe eine Funktion geschrieben in JScript (Nicht Javascript) Ich muss aussetzen, bis eine bestimmte globale Variable wahr wird. Die globale Variable auf true geändert, wenn eine andere Funktion nach einer Ajax-Antwort genannt wird:JScript Wartefunktion
function(req, event, data) {
globalVariable = true;
}
Wenn ich Schleife versuchen, bis die Variable wahr ist:
while (globalVariable!= true) {
}
ich in einem langen Warte und Die Callback-Funktion wird nie aufgerufen.
Einige haben die Verwendung von WScript.wait() vorgeschlagen, aber meine App kennt WScript nicht. SetTimeout() wird auch nicht helfen, weil es asynchroner Anruf ist und meine ursprüngliche Funktion nicht aussetzen wird.
Irgendwelche anderen Vorschläge?
Einige weitere Informationen in Bezug auf meine Frage: Ich möchte mein Skript 2 Funktionen aufzurufen:
waitWhileAjaxIsNotCompleted();
doSomthingElse();
Ich möchte die waitWhileAjaxIsNotCompleted() eine Schaltfläche klicken, die ein Ajax-Request (implementiert durch A4J) einreicht und enden mit der Ajax-Vollendung. Damit ich weiß, wann der Tha Ajax abgeschlossen ist, habe ich eine Funktion als Zuhörer registriert, die erweckt wird, wenn der Ajax abgeschlossen ist. Diese Funktion ändert einen globalVariable-Wert. Mein waitWhileAjaxIsNotComplete() geht in eine Endlosschleife und wartet darauf, dass sich der Wert von glovalVariable ändert. Wenn es sich ändert (nachdem der Listener aufgewacht ist), kann ich die Funktion ad mit der Funktion doSomthingElse() beenden.
Sie können mehr über die Umsetzung siehe: QTP Web extensibilty toolkit and ajax
Hier die Frage und eine Antwort: http://stackoverflow.com/questions/2198449/settimeout-not-working-in-windows-script-jscript –