Как вернуть данные в исходную функцию вызывающего абонента в Javascript?

У меня проблема с возвратом данных в функцию, в которую я хочу вернуть данные. Код ниже:

function ioServer(request_data, callback)
{
    $.ajax({
        cache: false,
        data: "request=" + request_data,
        dataType: "json",
        error: function(XMLHttpRequest, textStatus, errorThrown){},
        success: function(response_data, textStatus){
            callback(response_data);
            },
        timeout: 5000,
        type: "POST",
        url: "/portal/index.php/async"
    });
}   

function processRequest(command, item, properties)
{
    var request = {};
    request.command = command;
    request.item = item;
    request.properties = properties;
    var toServer = JSON.stringify(request); 
    var id = ioServer(toServer, processResponse);
    return id;
}

function processResponse(fromServer)
{
    if (fromServer.response == 1)
    {
        return fromServer.id;   
    }   
}

Я вызываю этот кусок кода, вызывая функцию processRequest внутри другой функции. Отправка запроса и получение ответа работает просто отлично. Однако мне нужно вернуть значение «id». из ответа обратно в функцию processRequest, чтобы он, в свою очередь, мог вернуть это значение вызывающей стороне. Насколько я могу судить, возврат в processResponse возвращается к $ .ajax, но мне нужно, чтобы он возвращался обратно к processRequest.

Кстати, оператор if в processResponse ссылается на значение, установленное серверным PHP-сценарием, чтобы указать, разрешен ли запрос (например, если пользователь не вошел в систему, fromServer.response будет 0). Он не имеет ничего общего с процедурами успеха / ошибки объекта $ .ajax.

Большое спасибо за помощь.

@Jani: Спасибо за ответ, но не могли бы вы уточнить немного? Функция где «идентификатор»; нужен следующий код:

$(#tabs).tabs('add', '#tab-' + id, 'New tab');

Вы говорите, что я должен попытаться выполнить этот кусок кода в функции processResponse? Потому что это не то, что я намеревался сделать; Эти функции предназначены для универсального решения для поддержки состояния на стороне сервера. Вот почему я избегал размещать этот кусок кода там.

Ответы на вопрос(5)

Ваш ответ на вопрос