0
我正在爲RPG系統開發角色生成器,作爲學習Angular的一種方式。我有我的數據在Firebase中,我也是新手。並行等待多個Firebase調用
在進入創建表單時,我想在繼續之前加載類型,描述符和焦點的所有數據。我目前的解決方案,確實有效,看起來像這樣。
角色服務:
var types = new Firebase(URL + '/Types');
var descriptors = new Firebase(URL + '/Descriptors');
var foci = new Firebase(URL + '/Foci');
...
allTypes: function()
{
return $firebaseArray(types);
},
allDescriptors: function()
{
return $firebaseArray(descriptors);
},
allFoci: function()
{
return $firebaseArray(foci);
},
角色管理:
vm.types = Character.allTypes();
vm.descriptors = Character.allDescriptors();
vm.foci = Character.allFoci();
...
vm.types.$loaded(function() {
vm.selectedType = vm.types[0];
vm.descriptors.$loaded(function()
{
vm.selectedDescriptor = vm.descriptors[0];
vm.foci.$loaded(function()
{
vm.selectedFocus = vm.foci[0];
vm.skills.$loaded(function()
{
vm.abilities.$loaded(function()
{
vm.ready = true;
});
});
});
});
});
此嵌套塊看起來非常凌亂我。我怎麼寫這個來並行加載所有的數據?我嘗試使用$q.all
,但它似乎沒有等待加載任何東西。我沒有太多的承諾或異步編程經驗,所以我閱讀過的許多解決方案似乎都有點壓倒性。
任何幫助表示讚賞!
你的第一個版本是什麼我以前基於試過在其他示例中,但它立即打印消息而不等待。你的第二個建議就像它應該那樣工作。謝謝! –