私はデータを取得するために別の関数を呼び出す関数を持っています。そのデータはローカルにキャッシュされている可能性があります。または、取得する必要があります。ローカルキャッシュは簡単です。しかし、もし私が$ .getJSONを使って、asyncをオフにしてブラウザをロックせずに取得すれば、そのデータを元の関数に戻す方法はありますか?jQuery:データが条件付きでAJAX経由でリクエストされた場合の返信方法
次のコード、すなわち、:
1)バーので()はもはやDATAXが起こっているparseData()戻り、存在しませんか? 2)bar()とparseData()の両方がコールし、リクエストが進行中にブラウザをロックせずにもう1つのコールバック層を持たない場合、dataXをparseData()からfoo()に戻すにはどうすればよいですか? ?
var foo = function() {
$('body').text(bar());
};
var bar = function() {
var parseData = function (dataX) {
// do something to data
return dataX;
};
if (localStorage.hasOwnProperty('someKey')) {
return localStorage.getItem('someKey');
else {
$.getJSON('http://somewhere.api.com?fubar=good', parseData);
}
};
$ .getJSONはjQueryのデフォルト引数の外でparseDataに引数を渡すことはできますか?すなわち、最初にfoo()を呼び出したイベントをトリガした(この場合は)
私はあなたが何を意味するのか分かりません。parseDataはクロージャスコープ内のすべてにアクセスできます。 – Daff
ああ、そうだよ。私はfoo()をオーバーロードし、呼び出し先と呼び出し元の両方になるようにします。 – BrianFreud