gpt4 book ai didi

angularjs - 延迟angular.js $ http服务

转载 作者:行者123 更新时间:2023-12-03 08:15:01 24 4
gpt4 key购买 nike

我有一些 Angular 工厂,可以对旧式ASP.NET .asmx Web服务进行ajax调用,如下所示:

module.factory('productService', ["$http",
function ($http) {
return {
getSpecialProducts: function (data) {
return $http.post('/ajax/Products.asmx/GetSpecialProducs', data);
}
}
} ]);

我正在局域网上进行测试,因此响应时间“太”好了。有没有一种聪明的方法可以将$ http延迟几秒以模拟不良连接?

还是我需要在$ timeout中包装对工厂方法的所有调用?
$timeout(function() {
productService.getSpecialProducs(data).success(success).error(error);
}, $scope.MOCK_ajaxDelay);

最佳答案

有趣的问题!

正如您自己提到的那样,$timeout是延迟 call 的最合逻辑的选择。您可以推送响应拦截器,以将$timeout promise 包装在$http promise 中,而不是到处都进行$timeout调用,如documentation of $http 在概念上概述的那样,然后将其注册到您的配置块之一中。这意味着所有$http调用都会受到$timeout延迟的影响。类似于以下内容:

$httpProvider.interceptors.push(function($timeout) {
return {
"response": function (response) {
return $timeout(function() {
return response;
}, 2500);
}
};
});

作为“模拟不良连接?”的奖励,您也可以随意拒绝或绝对不做任何事情。呵呵呵呵。

关于angularjs - 延迟angular.js $ http服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238227/

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