我有一些控制器和一個叫獲得從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