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