我在绑定(bind)时遇到问题 this
里面的一个 promise 。我在 Angular 服务中有以下功能:
this.database_view_settings = {'habal':'1'}
this.init = function(){
console.log("1",this.database_view_settings)
return $q((resolve, reject) => {
console.log("2",this.database_view_settings)
AuthenticationService.getToken().then(function(token){
$http.get('/api/user/settings/database_view/get',{headers:{'id_token':token}})
.success(function(data) {
console.log("3",this.database_view_settings)
this.database_view_settings = data;
console.log("login",this.database_view_settings)
resolve(this.database_view_settings)
})
.error(function(data) {
console.log('Error: ' + data);
reject(data)
});
}.bind(this))
})
}.bind(this)
我的问题是在console.log 1 and 2
时我看到我想要的{'habal':'1'}
在console.log 3
我得到一个undefined
我不明白为什么。
最佳答案
这会考虑添加到您的问题中的评论:
this.database_view_settings = { 'habal': '1' };
this.init = () => AuthenticationService.getToken()
.then((token) => $http.get('/api/user/settings/database_view/get', { headers: { 'id_token': token } }))
.then((data) => {
this.database_view_settings = data;
return data;
});
然后,其他地方:
this.init().then((data) => {
// do your stuff with data
}).catch((error) => {
// oops...
})
关于javascript - Angular $q 绑定(bind) this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852930/