Часть моего приложения отображается с использованием данных из запроса JSONP. Я хотел бы иметь возможность кэшировать результат этого запроса на стороне клиента, используя Sammy.Session.Настройка сеанса Sammy.js на результат запроса JSONP
Однако у меня возникли трудности, так как запрос 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 не будет завершен?