我在将数据返回到想要返回的函数时遇到问题。代码如下:
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。
顺便说一句,processResponse中的if语句引用服务器端PHP脚本设置的值,以告知是否允许该请求(例如,如果用户未登录,fromServer.response将为0)。它与$
.ajax对象的成功/错误例程无关。
非常感谢您的帮助。
@Jani:感谢您的答复,但您能否再说明一点?需要“ id”的函数具有以下代码:
$(#tabs).tabs('add', '#tab-' + id, 'New tab');
您是说我应该尝试在processResponse函数中执行这段代码吗?因为那不是我打算做的。这些功能旨在成为维护状态服务器端的通用解决方案。这就是为什么我避免将这段代码放在那里。
由于Tony没有提供任何评论,所以让我添加有关他的建议的详细信息。
如您所知,由于$ .ajax方法是异步的,因此在进行$
.ajax调用后,processRequest函数将立即完成。那么,您将如何通知processRequest的调用者该任务已完成?
很简单,您要求processRequest的调用者提供“回调函数”。每当processRequest收到ajax输出时,它将调用此函数。在tony的代码中,这是processRequest函数的最后一个参数。
所以您的调用代码现在看起来像
function tabMethod() {
processRequest('command', 'item', 'properties',
function (id) {
if (id == null) {
alert('There is a problem!');
return;
}
$('#tabs').tabs('add', '#tab-' + id, 'New tab');
});
};
问题内容: 这个问题已经在这里有了答案 : 如何从异步调用返回响应? (39个答案) 7年前关闭。 我想创建一个JavaScript函数,该函数返回jQuery AJAX调用的值。我想要这样的东西。 我知道我可以通过将async设置为false来做到这一点,但我宁愿不这样做。 问题答案: 使用jQuery 1.5,您可以使用全新的功能,正是为此目的而设计的。 资源
问题内容: 我如何使这个小功能“ imageExists”返回ajax请求是否成功? 问题答案: 我相信您将必须使用同步模式并使用单独的变量来存储返回值。
问题内容: 我正在使用ajax发布一些数据。我想处理该数据并返回到调用jQuery脚本。 这是我的jQuery: 这是我在服务器上的somescript.php: 我在服务器端是否正确执行此操作?ajax调用完成后如何访问返回字符串? 问题答案: 我想到了。需要在PHP中使用echo而不是return。 和jQ:
本文向大家介绍javascript中声明函数的方法及调用函数的返回值,包括了javascript中声明函数的方法及调用函数的返回值的使用技巧和注意事项,需要的朋友参考一下
我找到了一些很好的SO链接(如何从异步回调函数返回值?以及从node.js中的回调函数返回值等),但它们并不是不能为我的问题提供解决方案。 我的问题:能够得到异步调用的结果,但我如何使用这个结果返回我的函数? 这里获取callBackResponse的值为true或false,并希望将该值用作:
当函数声明类型参数时: 我应该如何在kotlin中调用原始的未类型化的类型化函数? 在爪哇中,我有: 因为< code>typedFunction声明了一个名为< code>T的类型,并将它的两个参数绑定到这个声明的类型,并且在调用站点上,我循环了多个确切类型未知的值(但已知是安全的,两个参数符合相同的类型),所以我不能按预期的方式调用typedFunction。我得把它铸造成一种原始类型。 如何