gpt4 book ai didi

javascript - 使用 $http 调用服务后的 Angular promise

转载 作者:行者123 更新时间:2023-11-28 19:39:12 24 4
gpt4 key购买 nike

我实际上正在使用 angularjs 开发一个应用程序,我面临 $http 的问题,以及对我的 web 服务的异步服务请求的结果。

实际上,我正在使用这段代码:

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;
}

这不起作用,给我一些东西,比如,我不知道为什么:

Angular error returned by the call要知道:在我的 Controller 中,我想使用非常简单的语法,例如

var data = UserService.getAll();

您知道我应该如何正确访问我的数据吗?

感谢您的提前

最佳答案

你得到了 promise 的返回。有多种方法可以使用此 promise 。

示例 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(返回promise并直接在 Controller 中使用它):

// 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;
});

关于javascript - 使用 $http 调用服务后的 Angular promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25403252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com