如何将像下面这样的查询转换为 Angular 服务,该服务将返回将解析为 结果
的 promise 或没有 promise 的 结果
本身?
我想我需要以某种方式链接 promise ,但不知道如何实现,从未这样做过。
var result = [];
var groups = $firebaseArray(firebase.database().ref().child("users/" + uid + "/leagues"));
groups.$loaded().then(function (data) {
_.each(data, function(one){
firebase.database().ref().child('leagues/' + one.$id).once('value', function(snapshot) {
result.push(snapshot.val());
});
});
}
最佳答案
你想要这样的东西吗?
function getGroups() {
return $firebaseArray(firebase.database().ref().child("users/" + uid + "/leagues")).$loaded();
}
function getDataGroups(groups) {
return $q.all(groups.map(function(one) {
return firebase.database().ref().child('leagues/' + one.$id).once('value');
}));
}
getGroups().then(getDataGroups).then(function(results) {
//blabla
});
注意:我从未玩过 firebase(所以也许我犯了一些错误),但经过一些快速研究 $loaded()
和 once()
都返回一个 Promise。
关于javascript - 为复杂的 Firebase 查询提供 Angular 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39914162/