ngresource在成功响应中设置全局变量
ngresource set global variable in success response
我正在运行此代码以运行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;
}
我认为Iamisti的答案不起作用,因为$resource
不返回承诺。请参阅此处:
注意:与$http.config相比,中不支持promise$resource,因为相同的值将用于多个请求。
您应该使用$promise
属性。以下是他的(和你的?)解决方案:
var global = 0;
var promise = GetValidationsService.get(function(data){
global = 3;
}).$promise;
promise.then(function() {
console.log(global);
});
问题
由于您执行异步操作,因此控制台将在您更改变量之前更早运行。
结论
所以基本上,它确实覆盖了你的全局变量,但就在你的承诺得到解决之后。
验证
通过以下方式,您可以在全局变量更改后对其进行检查。
var global = 0;
var promise = GetValidationsService
.get(function(data){
global = 3;
}).$promise;
promise.then(function(){
console.log(global);
});
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 使用eval()设置全局变量
- Ajax设置全局变量,但外部值消失
- 更新后,父视图未在 Electron 中的
上设置全局变量 - 为什么在定义回调/侦听器函数(异步消息传递,port.on)后没有立即设置全局变量
- 如何在不设置全局变量的情况下确定是否已调用函数
- 在函数内设置全局变量
- jQuery / JS设置全局变量,但卡在传递给AJAX自定义函数
- 在 jsdom 加载的脚本中设置全局变量
- 设置全局变量,但未获得预期结果
- 延迟调用 dojo widget 中的函数,直到设置全局变量
- 如何在Javascript中设置全局变量
- ngresource在成功响应中设置全局变量
- 如何在点击事件中设置全局变量
- 通过future函数循环和设置全局变量
- 尝试用javascript函数设置全局变量
- jQuery Ajax Post -无法使用回调函数设置全局变量
- jQuery load()函数不设置全局变量
- 设置全局变量并在jquery/javascript中访问它