簡體   English   中英

用$ http調用服務后的Angular Promise

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM