Показать сообщение отдельно
  #1 (permalink)  
Старый 10.04.2017, 09:34
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

асинхронный запрос
Здравствуйте, подскажите пожалуйста есть код, работающий в синхронном режиме, всё было нормально пока этих запросов было мало, сейчас количество запросов выросло и время обработки запросов стало критичным, если просто перевожу ajax в синхронный режим работы (async убираю, либо true), то запрос не присваивает переменной arr ответ от сервера и возвращает null, как сделать выполнение этого запроса асинхронным?
GetAgentFio: function (clientGuid) {
        if (clientGuid === undefined || clientGuid === null)
            return '<Нет данных>';
        var param = {
            resource: "Clients/GetClient",
            method: "GET",
            parameters: { id: clientGuid }
        };
        var agent = Ajax2.executeAjaxRequestReturnData(param);
        return agent !== undefined && agent !== null && agent.length !== 0 ? agent[0].Fio : '<Нет данных>';
    }

executeAjaxRequestReturnData: function (data) {
        var arr = null;
        console.log("Параметры запроса к API " + data.resource + ":");
        console.log(data);
        $.ajax({
            async: false,
            type: "POST",
            url: "/api/proxy",
            dataType: "json",
            contentType: "application/json",
            data: JSON.stringify(data),
            success: function (response) {
                console.log("Ответ от API " + data.resource + ":");
                console.log(response);
                arr = response;
            },
            error: function (status) {
                alert("Ошибка при получении данных при запросе к " + data.resource + ":" + status.responseText);
            }
        });
        return arr;
    }
Ответить с цитированием