Promise Chaining 未按预期工作

Promise Chaining is not working as expected

我正在尝试对我从 angular 应用程序

发出的 $http.get 调用使用承诺链
$http.get(url, config)
    .then(newViewRequest)
    .then(function (response) { // success async
        $scope.viewRequest1.data = response.data;
    }

在我的 newViewRequest 中,我对另一个端点进行了新的调用,如果 newViewRequest 中的调用成功,我只需要发回响应。以下是我正在尝试的

var newViewRequest = function (response) {
    var url1 = $rootScope.BaseURL;
    var config = {
        headers: {
            'Authorization': `Basic ${$scope.key}`,
            'Prefer': 'odata.maxpagesize=2000'
        }
    }; 

    var newresponse = $http.get(url1, config);
    if (newresponse.status = 200)
        return newresponse;
    else return response;
};

但它总是在不验证状态或任何东西的情况下发送请求响应。我该如何解决这个问题。

newViewRequest return 中的 $http.get 是一个承诺。您需要等待它解决以获取状态。你必须 return 来自 newViewRequest 的 Promise 才能进行正确的链接。

return $http.get(url1, config)
.then(newresponse => {
  if (newresponse.status = 200)
    return newresponse;
  else return response;
})
.catch(err => {
  return response;
})