我正在使用 Firebase 和 angularJS 来获取用户列表。我可以使用该once()
函数从我的数据库中读取所有用户,但我无法弄清楚为什么 userList
在下面返回 undefined
.service('userService', [function() {
this.getUsers = function() {
var users;
var userList;
var ref = firebase.database().ref('/users/');
ref.once('value').then(function(snapshot) {
users = snapshot.val();
for(var key in users) {
users[key].id = key;
// do some other stuff
}
console.log(users); // outputs all users
}).then(function(){
userList = users;
console.log(userList); // outputs all users
},(function(error){
alert('error: ' + error);
});
console.log(userList); // outputs 'undefined'
}
}]);
我等待分配我的userList
变量,直到我完成处理users
,但没有运气。
这里有一些重要的东西,我在 Promises/callbacks 方面遗漏了,我在文档中找不到它;有人可以帮助我理解我的问题吗?