[英]Angular promise after calling a service with $http
我實際上是使用angularjs開發應用程序,並且遇到$ http的問題以及對我的Webservice的異步服務請求的結果。
實際上,我正在使用以下代碼:
var promise = undefined;
UserService.getAll = function (callback) {
promise = $http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
}).success(function(data){
return data;
}).error(function(data){
return $q.reject(data);
});
return promise;
}
這不起作用,給我一些東西,我不知道為什么:
要知道:在我的控制器中,我想使用一個非常簡單的語法,例如
var data = UserService.getAll();
您是否知道如何處理才能正確訪問我的數據?
謝謝前進
您會得到回報。 有多種使用此承諾的方法。
示例1 (在服務中使用promise並返回對象的引用):
UserService.getAll = function () {
var dataWrapper = {
myData: {},
error: null
};
$http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
}).success(function(data){
dataWrapper.myData = data;
}).error(function(data){
dataWrapper.error = true;
return $q.reject(data);
});
return dataWrapper;
}
示例2 (返回承諾並直接在控制器中使用):
// service
UserService.getAll = function () {
return $http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
});
}
// controller
var promise = UserService.getAll();
promise.success(function(data) {
$scope.data = data;
});
示例3 (使用常規回調):
// service
UserService.getAll = function (cb) {
$http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
}).success(cb);
}
// controller
UserService.getAll(function(data) {
$scope.data = data;
});
您提到的“東西”是您創造並返回的承諾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.