0

我希望能够比较来自 2 个单独的 jsonp 调用的信息。我目前正在使用 $.getJSON 但我也尝试过 $.ajax 但没有运气。我的印象是问题是异步执行 $.getJSON 调用,这就是问题所在。这就是为什么我尝试了 $.ajax async: false,但它仍然不起作用。我想做这样的事情。

$.getJSON('url1', function(data){ var a = data.information };
$.getJSON('url2', function(data){ var b = data.information };
if(a === b) { whatever };

有没有办法完成我正在寻找的东西?

4

1 回答 1

1

JSONP 本质上总是异步的(即使不是,您仍然应该使用异步版本;async:false万恶之源)。你无法改变这一点。为了完成你想要做的事情,你可以使用$.when

var requests = [];
var data1, data2;

requests.push(
    $.getJSON( 'url1', function(data) { data1 = data.information; } )
);
requests.push(
    $.getJSON( 'url2', function(data) { data2 = data.information; } )
);

$.when.apply( $, requests ).then( function( ) {
    if (data1===data2) {
        // do something
    }
});
于 2013-02-13T15:06:37.763 回答