У меня есть функция, написанная на JScript (не javascript), которую мне нужно приостановить, пока определенная глобальная переменная не станет истинной.
Глобальная переменная изменяется на true, когда другая функция вызывается после ответа ajax:
function(req, event, data) {
globalVariable = true;
}
Когда я пытаюсь выполнить цикл, пока переменная не станет истинной:
while (globalVariable!= true) {
}
Я ухожу в ожидание, и функция обратного вызова никогда не вызывается.
Некоторые предлагали использовать WScript.wait (), но мое приложение не знает WScript.
SetTimeout () также не поможет, потому что это асинхронный вызов и не приостановит мою первоначальную функцию.
Любое другое предложение?
Еще немного информации относительно моего вопроса:
Я хочу, чтобы мой скрипт вызывал 2 функции:
waitWhileAjaxIsNotCompleted();
doSomthingElse();
Я хочу, чтобы waitWhileAjaxIsNotCompleted () щелкнул по кнопке, которая отправляет запрос ajax (реализованный A4J), и завершился после завершения ajax.
Для того, чтобы я знал, когда завершился ajax, я зарегистрировал функцию слушателя, которая будет активирована после завершения ajax. Эта функция изменяет значение globalVariable.
Мой waitWhileAjaxIsNotComplete () заходит в бесконечный цикл, ожидая изменения значения glovalVariable. Когда он изменится (после пробуждения слушателя), я могу завершить функцию и продолжить с помощью функции doSomthingElse () .
Подробнее о реализации вы можете узнать на следующих страницах: QTP Web extensibilty toolkit и ajax