2013-08-31 2 views
7

ajax/$ http 호출에 대한 시간 초과를 제공 할 수있는 Restangular에 내장 된 방법이 있습니까? 제한 시간을 구현하고 재시도를 구현하는 방법

그리고 어떻게 아약스/$ HTTP 통화 Restangular를 사용하여 시간 초과로 다시 시도 할 수있는 래퍼를 작성할 수 있습니다. 공장??

감사합니다.

답변

7

당신은 당신의 RestangularProvider의 설정에 setDefaultHttpFields와 기본 시간 제한을 설정할 수 있습니다. Restangular는 내부적으로 재시도 로직을 구현합니다. iOS 네트워크 컨디셔너 (설정 -> 개발자). 그러나 예를 들어 재 시도해야하는 경우 직접 재시도 논리를 구현해야합니다. 타임 아웃에 이르렀을 때. 당신은 또한 개인 Restangular 공급자에 대한 옵션을 설정할 수

당신은, 당신의 Restangular 모델의 기본값을 구성 할 수 있습니다. 예를 들어, 여기에 모두 SessionRestangular 및 AuthenticationRestangular 모두 공유 설정이 module.config에 정의되어 있지만 SessionRestangular는 HTTP 헤더의 "토큰"와 "USER_ID"보내드립니다 :

module = angular.module('SessionModel', ['restangular']) 

module.config (RestangularProvider) -> 
    RestangularProvider.setBaseUrl('https://api.provid.er/v1') 

    RestangularProvider.setDefaultHttpFields 
    timeout: 10000 # Milliseconds 


module.factory 'SessionRestangular', (Restangular, sessionService) -> 
    return Restangular.withConfig (RestangularConfigurer) -> 
    RestangularConfigurer.setDefaultHeaders 
     'user_id': sessionService.getUserId(), 
     'token': sessionService.getToken() 


module.factory 'AuthenticationRestangular', (Restangular) -> 
    return Restangular 
관련 문제