Мы можем вручную установить таймаут для каждого $http
через $http.get('url', {timeout: 5000});
Можно ли установить глобальный тайм-аут $http
один раз и применим ко всему приложению?
2
A
ответ
7
Вы можете использовать запрос http-перехватчика. Как это.
angular.module('myapp')
.factory('timeoutHttpInterceptor', function() {
return {
'request': function(config) {
config.timeout = 10000;
return config;
}
};
});
А потом в .config впрыснуть $ httpProvider и сделать это:
$httpProvider.interceptors.push('timeoutHttpInterceptor');
ИЛИ Вы можете сделать так же:
// this custom config could actually be a part of a more general app-level config
// so that you need to inject only one global config
myApp.value('http_defaults', {
timeout: 150
});
Здесь вы можете увидеть более простой способ Вводят выше http_defaults
в каждом контроллере вы использовали $http
. И установите все свойства по умолчанию HTTP-запроса.
myApp.controller('myCtrl', function ($scope, $http, http_defaults) {
// in case you need to change the default values for this specific request
// angular.extend(http_defaults, {timeout: 300});
$http.get("/xyz", http_defaults)
.success(success)
.error(error);
};
});
Я хотел бы предложить использовать первый вариант.
+2
, возможно, вы знаете, что такое тайм-аут по умолчанию для службы $ http? Или нет тайм-аута по умолчанию (ждать когда-либо)? – demaniak
Смежные вопросы
- 1. Angularjs override http global interceptor
- 2. Ошибка при реализации Global Timeout
- 3. AngularJS global $ http state ajax loader
- 4. AngularJS - $ watch и $ timeout
- 5. Http request timeout issue
- 6. libcurl http post timeout
- 7. HTTP keep-alive timeout
- 8. HTTP Request Timeout
- 9. HTTP URL Connection Timeout
- 10. Django http connection timeout
- 11. AngularJS - запрос внутри $ timeout
- 12. Angularjs $ timeout не исполняется
- 13. AngularJS: $ evalAsync vs $ timeout
- 14. angularjs $ timeout max value
- 15. Angularjs Handle api timeout
- 16. AngularJS $ interval или $ timeout
- 17. AngularJS $ q.all timeout
- 18. Опрос AngularJS с $ http и $ timeout, не обновляющий вид
- 19. AngularJS $ timeout работа по-разному
- 20. $ timeout not firing with $ HTTP
- 21. HTTP/1.1 504 timeout response
- 22. Spring GWT http request timeout
- 23. Java http read timeout issue
- 24. AngularJS: $ timeout не является функцией
- 25. AngularJS $ timeout for for loop
- 26. ReferenceError $ timeout не определен angularjs
- 27. angularjs: $ timeout use (внутри службы)
- 28. AngularJS Clock Factory, $ timeout woes
- 29. angularjs $ timeout и повторные вызовы
- 30. AngularJS - $ timeout не является функцией
если вы заверните свои http-звонки в службу, которая делает это, то да. или пользователь какой-то $ http-перехватчик службы, также может быть сделано ... Если вам нужны примеры, дайте мне знать –
@ Jony-Y Большое спасибо за ваш комментарий. Было бы неплохо, если бы вы могли показать пример, как ваше предложение может быть сделано. – user1995781
в значительной степени похожий на @NetSou показал в ответ ... просто добавьте свой $ timeout там или что вы хотите, чтобы он сделал –