2013-11-04 14 views
4

我使用Restangular通過鏈接承諾獲取數據。這裏是我正在做的一個簡單的例子:如何使用Restangular停止錯誤鏈接請求?

Restangular.one("employer").get().then(function(employer) { 
    return employer; 
}, function(response) { 
    //response.status === '401' 
    $location(login); 
}).then(function(company) { 
    Restangular.one("reviews?company_name='" + company).get() 
    .then(function(reviews) { 
     $scope.reviews = reviews.originalElement; 
    }); 
}); 

首先我需要得到用戶的僱主,然後附加到這位僱主的評論。我認爲它工作正常,直到我從服務器收到401迴應。

當它發生時,我將用戶發送到登錄屏幕。這也工作正常,但問題是,整個鏈得到執行 - 這將返回一個401.

最終,我想鏈發生錯誤時停止。我可以通過拋出一個錯誤來實現,但這真的是一個很好的解決方案嗎?我以錯誤的方式接近這個嗎?

回答

3

在你的錯誤處理程序,你需要return false;停止承諾鏈:

Restangular.one("employer").get().then(function(employer) { 
    return employer; 
}, function(response) { 
    //response.status === '401' 
    $location(login); 
    return false 
}).then(function(company) { 
    Restangular.one("reviews?company_name='" + company).get() 
    .then(function(reviews) { 
     $scope.reviews = reviews.originalElement; 
    }); 
}); 
+0

這是偉大的,謝謝! – tobiasandersen