Функция ожидания JScript - PullRequest
       18

Функция ожидания JScript

3 голосов
/ 09 августа 2009

У меня есть функция, написанная на 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

1 Ответ

0 голосов
/ 09 августа 2009

Я не помню, какого черта я использовал несколько месяцев назад, так как я не использую Jscript больше (не хватает времени) ... Но я в настоящее время ищу в моем программа, чтобы увидеть, если у меня еще есть Сценарий сохранен. Я сделал то же самое вещь несколько месяцев назад.

Я выложу код, как только найду это ...

<ч />

Извините за это. Я не могу найти фрагмент кода. Должно быть, я удалил это ... Типично для меня.

Итак, единственное, о чем я могу подумать, пока не будет доступно лучшее решение, это ввести свой код в бесконечный цикл и просто прервать его; из этого, как только GlobalVariable возвращает true.

Надеюсь, это поможет. Я буду продолжать это до тех пор, пока не найду фрагмент или не найду гораздо лучший ответ.

...