是否有任何内置方式进入 Restangular,我可以为 ajax/$http 调用提供超时?
以及如何使用 Restangular 为 ajax/$http 调用编写一个通过 Timeout 重试的包装器。一个工厂??
谢谢,莉娜。
是否有任何内置方式进入 Restangular,我可以为 ajax/$http 调用提供超时?
以及如何使用 Restangular 为 ajax/$http 调用编写一个通过 Timeout 重试的包装器。一个工厂??
谢谢,莉娜。
您可以在 RestangularProvider 的配置中使用 setDefaultHttpFields 设置默认超时。Restangular 将在内部实现重试逻辑,您可以通过使用例如 iOS 网络调节器(设置 -> 开发人员)来亲眼看到这一点。但是,如果您需要重试,例如,您需要自己实现重试逻辑。达到超时时。
您可以在 Restangular 模型中配置默认值,也可以为单个 Restangular 提供者设置选项。例如,这里 SessionRestangular 和 AuthenticationRestangular 都共享 module.config 中定义的设置,但只有 SessionRestangular 会在 HTTP 标头中发送“token”和“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