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 に答える