如何使用Promise in Service AngularJS?示例Data Firebase
How to use Promise in Service AngularJS? Sample Data Firebase
这是我的service.js文件:
angular.module('starter.services', [])
.factory('firebaseData', function() {
return {
refUserFacebook: function (userUid) {
var firebaseRef = new Firebase("https://sweltering-heat-772.firebaseio.com/users/");
var user;
firebaseRef.once('value', function(dataSnapshot) {
var users = dataSnapshot.val();
var userKeys = Object.keys(users);
for (var i = 0, len = userKeys.length; i < len; i ++){
if (users[userKeys[i]].uid == userUid){
user = users[userKeys[i]];
}
}
console.log(user);
return user;
});
}
}
})
这是我的控制器文件名item.js文件
angular.module('starter.controllers.item', [])
.controller('ItemCtrl', function($scope, firebaseData) {
var ref = firebaseData.ref();
var userUid = ref.getAuth();
var user = firebaseData.refUserFacebook(userUid.uid);
console.log(user);
})
当然,我会先在item.js控制器中得到undefined,然后在服务中返回user。
我真的很想在我的控制器中使用Promise技术,从服务中返回用户价值。
在item.js文件中,它将类似于:
firebaseData.refUserFacebook(userUid.uid).then(function(user){
console.log(user); //Promise after retrieving value from service.js
});
任何帮助都将不胜感激。
感谢
下次您应该至少提供一些尝试的代码。。。但这是你想要的:
angular.module('starter.services', [])
.factory('firebaseData', function($q) {
return {
refUserFacebook: function (userUid) {
var firebaseRef = new Firebase("https://sweltering-heat-772.firebaseio.com/users/");
var user;
var deferred = $q.defer();
firebaseRef.once('value', function(dataSnapshot) {
var users = dataSnapshot.val();
var userKeys = Object.keys(users);
for (var i = 0, len = userKeys.length; i < len; i ++){
if (users[userKeys[i]].uid == userUid){
user = users[userKeys[i]];
}
}
console.log(user);
deferred.resolve(user);
});
return deferred.promise;
}
}
})
相关文章:
- Ember Data DS.Model's set函数不起作用
- PHP AJAX图片上传示例不上传
- Extending Ext.data.NodeInterface
- API密钥使用和检查示例
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 骨干模型默认值-todos.js示例中不必要的代码
- d3js文本传输-示例代码不起作用
- 如何获取$data.Entity的密钥
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- jQuery可以't获取data-*属性值,返回undefined
- Query JS Ext.data.Store
- 设置'这'在React with Inverse Data Flow中
- 来自MDN的循环示例的JavaScript不起作用
- 如何使相机跟随地形's在此示例中的高度:http://threejs.org/examples/#webgl_t
- Google Data API上的OOP Javascript回调方法
- 如何获取`data-listid`属性值
- 如何在Baqend Dashboard的Data选项卡中创建示例引用列表?
- 剑道移动示例解释- data.HasEmployees
- 如何使用Promise in Service AngularJS?示例Data Firebase