链接 $http.get AngularJS

Chaining the $http.get AngularJS

由于我很少调用函数内的端点,这导致了对端点的并行调用出现问题,因此在另一个问题中建议使用承诺链。我更新了我的代码,这样我们就可以一个接一个地调用端点,所以代码如下所示

 $scope.getRequest = function () {
        var url = $rootScope.BaseURL;
        var config = {
            headers: {
                'Authorization': `Basic ${$scope.key}`,
                'Prefer': 'odata.maxpagesize=2000'
            }
        };
        $http.get(url, config)
            .then(newViewRequest)
            .then(function(response){ 
                $scope.viewRequest.data = response.data;
            },
            function (response) { // failure async
                console.log("There was an error getting the request from CORE");});
   };

    var newViewRequest = function (response) {
        var url1 = $rootScope.BaseURL + `CMQ_REQUEST('${$scope.viewRequest.barcode}')`;
        if (response.data.REV_SAMPLE_CMQREQUEST.length = 0) {
            return $http.get(url1, config)
         }
        return $q.reject({ message: 'Validations didnt work' });
    };

如果 response.data.REV_SAMPLE_CMQREQUEST.length = 0,它总是从 newViewRequest 发回拒绝消息,如果我将其注释掉,我会得到 response.data 未定义。

更新您的条件以验证而不是分配

问题: 更新 if 条件如下,用 === 检查 response.data.REV_SAMPLE_CMQREQUEST.length 是否为 0共 =

if (response.data.REV_SAMPLE_CMQREQUEST.length === 0)