我使用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;
};
它幾乎工程...所有的承諾都得到除了最後一個執行:本應在角視圖加載之前被調用,它基本上工作除了在創建視圖後調用行,我不明白爲什麼。
我知道這種寫作承諾的風格並不是很理論,但我沒有找到任何更好的解決方案,因爲這個清單...我很樂意獲得關於我的代碼的一些見解!
ParseService
只是一個服務,從正常的JS承諾創造角承諾。
'global.then'的'return'是'categories' ....返回'forEach'沒有事情。如果你需要完成這些,可能需要'$ q.all()' – charlietfl