Как правильно подписаться на изменения? - Angularfire2
Привет, я не часто пользовался Firebase. Метод, который я использую для получения значений, кажется грязным...
Я использую этот метод, чтобы получить сумму суммы для каждого объекта. value в ListObservable
Может ли кто-нибудь сказать, как лучше всего подписаться на изменения, чтобы totalAmount оставался в актуальном состоянии?
//Returns a promise of the total sum for each object.amount under a category getTotalAmountPromise(observable) { let totalAmount: number = 0; return new Promise(function(resolve, reject) { let count = 0; observable.$ref.ref.on('child_added', childs => { childs.ref.once('value', obj => { totalAmount += obj.val().amount; count++; let length = childs.numChildren(); if(count == length) { resolve(totalAmount); } }); setTimeout(() => { if (!(count == length)) reject(Error('Data rejected. Count: ' + count + ', Childs: ' + length)); }, 5000); }); }); }
Что я уже пробовал:
Кажется, я не могу найти хороший способ сделать это. Я надеялся, что кто-нибудь здесь сможет прийти с каким-нибудь руководством.