【发布时间】:2016-08-31 10:56:16
【问题描述】:
我在 Firebase 中使用 angularJs。 要从 firebase 检索数据,请使用以下代码。
Controller.js
$scope.load_msg=function(){
$scope.msg=[];
Chat.load_msg($scope.name,$scope.user.profile.name).then(function(arr){
$scope.msg=arr;
console.log($scope.msg);
},function(error){
console.log(error);
});
}
Service.js
load_msg:function(name,frm){
var deferred = $q.defer();
var sref=ref.child('/Chats/'+frm);
var rref=ref.child('Chats/'+name);
var msgArray=[];
ref.orderByChild("to").equalTo(name).once('child_added',function(messages){
msgArray=msgArray.concat(messages.val());
deferred.resolve(msgArray);
},function(error){
deferred.reject(error);
});
return deferred.promise;
}
msgArray 包含由 on() 查询的所有元素,但回到控制器 arr 仅查询第一个对象。如何通过 promise 发送整个数组msgArray?
【问题讨论】:
-
一个promise只能解决一次。在数组完成之前不要调用
resolve。 -
你能告诉我应该在哪里调用resolve吗?我似乎找不到解决方案
标签: javascript angularjs firebase promise