Как выйти из обработки Javascript после проверки на основе DWR - PullRequest
1 голос
/ 08 апреля 2011

Я относительно новичок в Javascript и новичок в Ajax и DWR - я подозреваю, что это вопрос Javascript, а не Ajax / DWR, но здесь идет речь:

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

Я обнаружил, что при ошибке проверки отображается сообщение об ошибке, но обработка Javascript не останавливается, а продолжается, как если бы проверка прошла успешно. Поэтому мой вопрос заключается в том, как мне завершить обработку Javascript, если проверка не удалась («A:» в приведенном ниже коде).

Это смесь Javascript и псевдокода, но она должна иллюстрировать, что я делаю.

Спасибо за любую помощь,

Steve

MyRemoteService.validateData(myData, {
    callback:function(str) { 
        if (str) {
        // A: show an error message
            return;
        }                           
    }
    });


// pseudocode - this is what I want to happen:

if (validation error)
    //    don't do anything else
}

// Data was valid  - continue to do stuff

Ответы [ 2 ]

3 голосов
/ 08 апреля 2011

Синхронизация вызова DWR решает проблему:

MyRemoteService.validateData(myData, {
   async: false,
   callback:function(str) { 
        if (str) {
        // A: show an error message
            return;
        }                           
    }
    });
0 голосов
/ 12 апреля 2011

Насколько я понимаю ваш пост,

Вы хотите выполнить некоторый код java-скрипта, только после того, как получите результат от бэкэнда, будь то успех или сообщение об ошибке! (Прав ли я или что-то упустил)

Если это так, напишите свой код JavaScript с помощью функции обратного вызова dwr.Таким образом, они будут вызваны только после того, как результат придет из серверной части.

...