Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
如何将jQuery.when()用于多个jsonp请求?_Jquery_Jsonp_When Js - Fatal编程技术网

如何将jQuery.when()用于多个jsonp请求?

如何将jQuery.when()用于多个jsonp请求?,jquery,jsonp,when-js,Jquery,Jsonp,When Js,我有两个跨域jsonp请求,需要在执行另一个方法之前完成。所以我尝试了$.when()函数 getX()和getY()使用单独的jsonp回调向两个不同的域发出$.ajax()请求 与我最初的想法相反,createXY()在回调返回之前被调用。因此,createXY()没有所需的数据 有人能给我举一个例子,说明在多个异步jsonp请求完成时调用函数吗?For$。当()要工作时,必须向它传递一个它正在等待的延迟对象。确保getX()和getY()函数返回由jQuery ajax调用创建的延迟对象

我有两个跨域jsonp请求,需要在执行另一个方法之前完成。所以我尝试了$.when()函数

getX()和getY()使用单独的jsonp回调向两个不同的域发出$.ajax()请求

与我最初的想法相反,createXY()在回调返回之前被调用。因此,createXY()没有所需的数据

有人能给我举一个例子,说明在多个异步jsonp请求完成时调用函数吗?

For
$。当()
要工作时,必须向它传递一个它正在等待的延迟对象。确保
getX()
getY()
函数返回由jQuery ajax调用创建的延迟对象

如果需要帮助,请发布
getX()
getY()
的代码

下面是一个例子:


代码中有一个非常愚蠢的错误。getX()和getY()调用了$.ajax(),但从未返回它。用return包装$.ajax()调用,代码现在运行良好。谢谢你的帮助

getX()
getY()
返回什么?他们应该返回
$.ajax()
返回的值。在涉及承诺和问题时,请避免使用jQuery。最好使用promise polyfill,如或。
$.when(getX(), getY()).then(createXY);
$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1,  a2){
  /* a1 and a2 are arguments resolved for the
      page1 and page2 ajax requests, respectively */
  var jqXHR = a1[2]; /* arguments are [ "success", statusText, jqXHR ] */
  if ( /Whip It/.test(jqXHR.responseText) ) {
    alert("First page has 'Whip It' somewhere.");
  }
});