$save().then 在 Angular 上$resource不等待服务响应
$save().then on Angular $resource doesn't wait for the service response
我有一些控制器和一个函数,用于从 REST WCF Web 服务获取一些值:
fooBar.controller('fooCtrl',
function fooCtrl($scope, $http, $resource) {
$scope.someOnClickEvent = function () {
GetSomething('a','b','c');
}
}
);
function GetSomething($scope, $resource, a, b, c) {
var ServiceHandle = $resource('some/addr');
var serviceHandle = new ServiceHandle();
serviceHandle.a = a;
serviceHandle.b = b;
serviceHandle.c = c;
serviceHandle.$save().then(function (result) {
console.log('So response should be ready');
$scope.result = result.ValueFromService;
});
}
据我所知$save()
返回 promise 和 .then
中的函数应该在服务器返回响应后立即调用。就我而言,它被称为即时。
如果服务返回 true,我将显示一些弹出窗口,因此我需要在执行条件指令之前返回此值。
Angular 的版本是 1.4.9。
我已经分析了代码及其行为,显然我错了。也许我应该删除这个问题,但我相信它可以帮助某人理解类似的问题。
实际上,.then
中的函数是在来自服务器的响应之后调用的。例如,可以使用Chrome的开发人员工具(即标签网络)进行验证。
但是,如果在调用 GetSomething 函数之后,我们想访问一个$scope.result
我们就犯了一个很大的错误。 只要不执行.then
中的函数,$scope.result
就会被undefined
。要使用从服务返回的值,我们必须在函数内部或函数调用.then
函数中执行此操作。
相关文章:
- 单击按钮以等待单击按钮
- React组件等待所需道具进行渲染
- 正在等待呈现图表,直到加载数据为止
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- JavaScript循环并等待函数
- 在等待异步任务时永久循环
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 可以't通过Angular$resource POST数据
- 等待循环调用的所有承诺完成
- 等待回调函数执行
- RxJS等待承诺解决
- AngularJS在.run中等待Resource
- 使用$resource时,量角器等待与页面同步超时
- $save().then 在 Angular 上$resource不等待服务响应
- 在服务中等待 Angular JS(REST -> $resource)
- AngularJS在用户点击范围内等待$resource承诺
- AngularJS等待$resource响应来设置值