我的应用程序的一部分是使用来自 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 请求完成?