Javascript 如何通过函数返回post结果?
我调用了一个函数,该函数使用jQuery返回ajax GET请求的结果 如何通过函数将其结果返回给被调用方Javascript 如何通过函数返回post结果?,javascript,jquery,ajax,return-value,Javascript,Jquery,Ajax,Return Value,我调用了一个函数,该函数使用jQuery返回ajax GET请求的结果 如何通过函数将其结果返回给被调用方 function makePrPoContent(s_firstName, s_lastName, s_email){ $.get('/includes/snippets/privacy_policy.jsp', { firstName: s_firstName, lastName: s_lastName, email: s_email }
function makePrPoContent(s_firstName, s_lastName, s_email){
$.get('/includes/snippets/privacy_policy.jsp', {
firstName: s_firstName,
lastName: s_lastName,
email: s_email
}, function(data){
return data;
});
}
var mainContent = makePrPoContent('Stack', 'Overflow', 'email@fake.com');
console.log(mainContent);
上面没有返回任何内容,这可能是因为返回在ajax回调中,因此返回不会返回到makePrPoContent
我也试过:
function makePrPoContent(s_firstName, s_lastName, s_email){
var returnData = false;
$.get('/includes/snippets/privacy_policy.jsp', {
firstName: s_firstName,
lastName: s_lastName,
email: s_email
}, function(data){
returnData = data;
});
return returnData;
}
这不起作用,因为它在ajax调用完成之前返回,因此returnData仍然为false
我可以验证是否确实存在通过ajax回调返回的数据。当我在回调中记录数据时,它具有我需要的内容
我如何让它返回到我的函数
提前谢谢你的帮助 最好将结果传递给另一个要处理的函数。基本上,您不能按照您的建议去做,因为AJAX是异步的,因此不会等待结果
因此,只需从回调函数内部调用其他函数数据。最好将结果传递给另一个要处理的函数。基本上,您不能按照您的建议去做,因为AJAX是异步的,因此不会等待结果
因此,只需从回调函数内部调用其他函数数据。AJAX是异步的,因此您可以最好地采用这种方式,您可以如下更改函数:
function makePrPoContent(s_firstName, s_lastName, s_email, callback){
$.get('/includes/snippets/privacy_policy.jsp', {
firstName: s_firstName,
lastName: s_lastName,
email: s_email
}, callback);
}
makePrPoContent('Stack', 'Overflow', 'email@fake.com', function(data) {
console.log(data);
});
然后调用它时,传入接受结果的函数,如下所示:
function makePrPoContent(s_firstName, s_lastName, s_email, callback){
$.get('/includes/snippets/privacy_policy.jsp', {
firstName: s_firstName,
lastName: s_lastName,
email: s_email
}, callback);
}
makePrPoContent('Stack', 'Overflow', 'email@fake.com', function(data) {
console.log(data);
});
AJAX是异步的,因此您可以最好地采用这种方式,您可以如下更改函数:
function makePrPoContent(s_firstName, s_lastName, s_email, callback){
$.get('/includes/snippets/privacy_policy.jsp', {
firstName: s_firstName,
lastName: s_lastName,
email: s_email
}, callback);
}
makePrPoContent('Stack', 'Overflow', 'email@fake.com', function(data) {
console.log(data);
});
然后调用它时,传入接受结果的函数,如下所示:
function makePrPoContent(s_firstName, s_lastName, s_email, callback){
$.get('/includes/snippets/privacy_policy.jsp', {
firstName: s_firstName,
lastName: s_lastName,
email: s_email
}, callback);
}
makePrPoContent('Stack', 'Overflow', 'email@fake.com', function(data) {
console.log(data);
});
如果你真的想这样做,这通常是一个坏主意,但是你的选择-如果你使用ajax,你应该真正使用回调,你必须将ajax请求设置为同步而不是异步,这是ajax中的a,也是所有这一切背后重要而创新的想法
如何将其设置为行为同步应该很容易在中找到,如果你真的想这样做,这通常是个坏主意,但是你的选择——如果你使用ajax,你应该真正使用回调,你必须将ajax请求设置为同步的而不是异步的,这是ajax中的A,也是所有这一切背后的重要和创新的想法 如何将其设置为行为同步应在相关问题:相关问题中找到: