8

ajax/$http 呼び出しのタイムアウトを提供できる Restangular への組み込みの方法はありますか?

また、ajax/$http 呼び出しに Restangular を使用して、Retry by Timeout のラッパーを作成するにはどうすればよいですか。工房??

ありがとう、リーナ。

4

1 に答える 1

8

RestangularProvider の設定で setDefaultHttpFields を使用してデフォルトのタイムアウトを設定できます。Restangular は内部的に再試行ロジックを実装します。これは、たとえば iOS ネットワーク コンディショナー (設定 -> 開発者) で遊んでみるとわかります。ただし、再試行する必要がある場合は、自分で再試行ロジックを実装する必要があります。タイムアウトに達したとき。

個々の Restangular プロバイダーのオプションを設定することもできるため、Restangular モデルでデフォルトを構成できます。たとえば、ここでは SessionRestangular と AuthenticationRestangular の両方が module.config で定義された設定を共有していますが、HTTP ヘッダーで「token」と「user_id」を送信するのは SessionRestangular だけです。

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
于 2013-10-29T07:07:06.687 に答える