Как вернуть данные в исходную функцию вызывающего абонента в 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? Потому что это не то, что я намеревался сделать; Эти функции предназначены для универсального решения для поддержки состояния на стороне сервера. Вот почему я избегал размещать этот кусок кода там.