angularjs – 延迟一个angular.js $http服务

前端之家收集整理的这篇文章主要介绍了angularjs – 延迟一个angular.js $http服务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些有角度的工厂,用于对传统的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);
@H_404_9@
@H_404_9@
有趣的问题!

正如你自己提到的,$ timeout是延迟调用的最合理的选择。而不是在每个地方都有$ timeout调用,你可以推送一个响应拦截器将$ http promise包装在一个$ timeout promise中,就像在documentation of $http中概念概述的那样,然后在一个配置块中注册它。这意味着所有$ http调用都受到$ timeout延迟的影响。类似的东西:

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

作为你的“模拟一个坏的连接?”的奖励,你可以拒绝或绝对没有任何随机。嘿嘿。

@H_404_9@ 原文链接:https://www.f2er.com/angularjs/145538.html

猜你在找的Angularjs相关文章