Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过函数返回post结果?_Javascript_Jquery_Ajax_Return Value - Fatal编程技术网

Javascript 如何通过函数返回post结果?

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 }

我调用了一个函数,该函数使用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(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,也是所有这一切背后的重要和创新的想法

如何将其设置为行为同步应在

相关问题:相关问题中找到: