Я использую Parse.com для хранения данных моего приложения, и в настоящее время я придерживаюсь некоторых вложенных обещаний. Я совершенно новый для этой концепции, и я писал, что:Вложенные обещания со списками
this.loadCategories = function() {
var global = ParseService.toAngularPromise(new Parse.Query(Categories).find());
global.then(function(categories){
return categories.forEach(function (category){
var criteriaPerCategory = ParseService.toAngularPromise(category.relation('relevantCriteria').query().find());
return criteriaPerCategory.then(function (allCriteriaPerCategory){
category._criteria = allCriteriaPerCategory;
});
});
});
return global;
};
Это почти работает ... Все обещания становятся выполнены, кроме последней: это должно быть вызвано до видовых нагрузок в угловом и она в основном работает за исключением того, что строка category._criteria = allCriteriaPerCategory;
вызывается после создания представления, и я не понимаю, почему.
Я знаю, что этот стиль для написания обещаний не очень академичен, но я не нашел лучшего решения из-за этого списка ... Я был бы очень рад получить некоторые сведения о моем коде!
ParseService
- это услуга, которая создает Угловые обещания от обычных обещаний JS.
'return' from' global.then' is 'categories' .... возвращение к' forEach' не делает вещь. Если вам нужны все, чтобы завершить, вероятно, понадобится '$ q.all()' – charlietfl