在 angular 中取消资源请求

Cancel a resource request in angular

我是angular的新手,所以我需要这个问题的详细解答。看了很多回答都不是我的情况

我有一个服务:

function ticketService($resource, globals) {
        return $resource(globals.API_URL+'/tickets/:id', {id: '@id'}, {
            update: {method: 'PUT'}
        });
    }

现在打新电话时需要取消之前的电话。我需要如何在这里使用 timeout 参数?

在控制器中,我这样调用此服务:

ticketService.get({group_by: type}, function(data) {
.
.
.
.
});

我需要如何更改我的服务和控制器。

谢谢。

示例是这个先前的 Whosebug 问题应该也适用于您的要求。 $resource 支持 Angular 的承诺系统的 timeout 功能。

var canceller;

function ticketService($resource, globals) {
    canceller = $q.defer();

    return $resource(globals.API_URL + '/tickets/:id', {
        timeout: canceller.promise,
        id: '@id'
    }, {
        update: {method: 'PUT'}
    });
}

function cancelRequest() {
    if (canceller) {
        // You could also use a $timeout timer to cancel it
        canceller.resolve('cancelled');
    }
}