Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > $.ajax обернутая в функцию


Автор: eee 21.10.2009, 21:45
Добрый вечер. Подскажите, пожалуйста, как решить задачу.

Задача стоит в том, чтобы 
Код

function foo(str) {
    var result;
    $.ajax({
        url  : '/ajax/?p=validate',
        data : 'value=' + str,
        dataType : 'text',
        success  : function(data, textStatus){
            result = data;
        }
    });
    return result;
}

Подскажите как реализовать такую функцию. Т.е. чтобы foo() возвращала ответ сервера на Ajax-запрос.

Автор: IDVsbruck 21.10.2009, 22:36
Никак. Отходи от линейного программирования и в данном случае от ООП к событийно-ориентированному программированию.
Суть в том, что есть место, где ты вызываешь foo() и ждешь результата, по которому делаешь дальнейшие действия. Надо разбить на разные функции: ДО foo() и ПОСЛЕ. ДО делает запрос, ПОСЛЕ получает ответ. Либо просто в success вызывай ПОСЛЕ со статусом результата (результатом), либо в success инициируй событие, которое слушает ПОСЛЕ.
Или превращай асинхронный запрос в синхронный, что, по-моему, в данном случае полный идиотизм.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)