gpt4 book ai didi

angularjs - 如何为 Retangular 实现超时和重试

转载 作者:行者123 更新时间:2023-12-04 07:39:12 26 4
gpt4 key购买 nike

在 Retangular 中是否有任何内置方法可以为 ajax/$http 调用提供超时?

以及如何使用 Retangular 为 ajax/$http 调用编写一个包装器以通过超时重试。一个工厂??

谢谢,莉娜。

最佳答案

您可以在 RestangularProvider 的配置中使用 setDefaultHttpFields 设置默认超时。 Restangular 将在内部实现重试逻辑,您可以通过玩例如iOS 网络调节器(设置 -> 开发人员)。但是,如果您需要重试,则需要自己实现重试逻辑。当达到超时时间。

您可以在您的 Restangular 模型中配置默认​​值,因为您还可以为单个 Retangular 提供程序设置选项。
例如,这里的 SessionRestangular 和 AuthenticationRestangular 都共享 module.config 中定义的设置,但只有 SessionRestangular 会在 HTTP header 中发送“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

关于angularjs - 如何为 Retangular 实现超时和重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com