Я разрабатываю генератор символов для системы RPG как способ обучения Угловой. У меня есть данные в 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
, но он, похоже, не дождался загрузки чего-либо вообще. У меня нет большого опыта в обещаниях или асинхронном программировании, поэтому многие из прочитанных нами решений кажутся немного подавляющими.
Любая помощь приветствуется!
Ваша первая версия, что я пытался до того на основе на других примерах, но сразу же выводит сообщение без ожидания. Ваше второе предложение работает так, как должно. Спасибо! –