私のアプリケーションの一部は、JSONP リクエストからのデータを使用してレンダリングされます。Sammy.Session を使用して、このリクエストの結果をクライアント側でキャッシュできるようにしたいと考えています。
ただし、JSONP リクエストは同期的であるため、問題が発生しています。これが私の現在の非動作コードです:
this.get('#/projects', function(context) {
var categories = this.session('categories', function() {
var data;
$.getJSON('http://mysite.com/projects/categories/?jsoncallback=?', null,
function(json) {
data = json.categories;
});
return data;
});
});
// categories is undefined at this point,
// because the JSONP call may not have finished
// code that renders the data
this.session('categories', categories);
});
私がやりたくないのは、カテゴリがセッション中の場合に JSONP リクエストを行うことです。JSONP リクエストが完了するまでルートの残りのコードを待機させる方法はありますか?