我有一些控制器和一个叫获得从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()
返回承诺和.then
里面的函数应该在服务器返回响应后立即调用。在我的情况下,它被称为imediately。
如果服务返回true,我将显示一些弹出窗口,所以我需要在执行条件指令之前返回该值。
Angular版本是1.4.9。
尽管源代码看起来不那么清晰(实际返回值是'return result。$ promise || result'),但文档确实表示实例操作会返回一个承诺,该操作同时包含成功和错误回调,因此如果承诺 – Duncan
谢谢@Duncan,我错了,然后像魅力一样工作,这只是我在异步编程领域缺乏教育;)。 – Landeeyo