如何使用角度休息服务设置超时回调事件

How to setup timeout callback event using angular rest service

本文关键字:设置 超时 回调 事件 服务 何使用      更新时间:2023-09-26

当我使用 angular 服务工厂保存数据时,如何处理超时事件,假设互联网连接不稳定,现在我最终会无限加载屏幕,所以我想在几秒钟后设置超时,如果没有收到响应,我的休息服务如下所示:

.factory('Deal', [ '$resource', function($resource) {
    return $resource("/deals/:id/:action.json", {
        id : "@id",
        action : "@action"
    }, {
        query : {
            method : "GET",
            isArray : false
        },
        update : {
            method : "POST",
            params : {
                    action : 'update'
            }
        }
    });
} ])

这就是我调用保存方法的方式:

  Deal
    .save(
        $scope.deal,
        function(data) {
        },
        function(err) {
        });

配置选项具有可能对您有所帮助的timeout属性

query : {
        method : "GET",
        isArray : false,
        timeout:5000, //In millisecond
    },

您可以使用$http.defaults配置在全局级别覆盖此设置。请参阅有关$http$resource https://code.angularjs.org/1.3.3/docs/api/ng/service/$http 的文档

当超时到期时,基础资源承诺将被拒绝,并且您将在错误回调时登陆