我正在运行此代码来运行REST请求
app.factory('GetValidationsService', function($resource) {
return $resource('/Validations');
})
然后调用它:
var global = 0;
GetValidationsService.get(
function(data){
global = 3;
},
function(err){
});
console.log(global);
结果为0 我希望它是3。 我怎样才能将值设置为全局?
function(data){
global = 3;
}
答案 0 :(得分:1)
我不认为Iamisti的回答会有效,因为$resource
不会回复承诺。
See here:
注意:与$ http.config相反,不支持promises $ resource,因为相同的值将用于多个请求。
Yous应该使用$promise
属性。
以下是他(和你的?)解决方案:
var global = 0;
var promise = GetValidationsService.get(function(data){
global = 3;
}).$promise;
promise.then(function() {
console.log(global);
});
答案 1 :(得分:0)
由于您执行了异步操作,因此您的控制台将在您更改变量之前运行。
所以基本上它会覆盖你的全局变量,但只是在你的诺言解决之后。
通过以下方式,您可以在更改后检查全局变量。
var global = 0;
var promise = GetValidationsService
.get(function(data){
global = 3;
}).$promise;
promise.then(function(){
console.log(global);
});