所以我有一個方法在一個angularjs服務器,正在調用一個方法,返回一個數組中的每個方法的承諾。我正在使用下劃線_each來遍歷數組。我想等到我才調用的方法最後一行代碼整個陣列處理..
所以......
function ProcessCoolStuff(coolStuffs)
{
var stuff = [];
_.each(coolStuffs, function(coolStuff)
{
//Some method using $q to return
makeStuffCooler(coolStuff).then(function(coolerStuff)
{
stuff.push(coolerStuff);
});
});
//Maybe Call a Display Method, or call event ect..
ShowAllMyCoolStuff(stuff);
}
這當然不行..循環完成和在爲每個項目完成makeStuffCooler之前調用「ShowAllMyCoolStuff」。那麼..與async方法交互的正確方法是什麼,所以我的ShowAllMyCoolStuff方法將等待,直到集合被填充?這可能是我缺乏q $和一般承諾的經驗,但我被卡住了。提前致謝。
值得關注的是,如果你的瀏覽器中運行的角度,你也許可以依靠它有Array.prototype.forEach和Array.prototype.map.But呀,$ q.all是它的在。 – pfooti 2014-09-04 17:49:19