0

I'm using $resource in my project. Making POST request and calling api. But after 30 seconds I want to kill the http request. How can I achieve that ?

  • Possible duplicate of [Angularjs how to cancel resource promise when switching routes](http://stackoverflow.com/questions/24440177/angularjs-how-to-cancel-resource-promise-when-switching-routes) – Okazari Dec 11 '15 at 14:24

2 Answers2

0

According to the docs, you can specify a timeout parameter on the $resource actions. I'm assuming it would look something like this (since you specified a POST request I guess you must be calling .$save or Resource.save):

$resource('/foo/bar/:id',{id :'@id'},{
    save: {method: 'POST', timeout: 30000} // 30 seconds in milliseconds
});

Note that the timeout parameter can be:

timeout in milliseconds, or promise that should abort the request when resolved.

Haven't tested this at all but hopefully it can help you.

jsonmurphy
  • 1,600
  • 1
  • 11
  • 19
0

We can use the cancellable: true in the query object so that request can be cancelled at any point.

var request = $resource('/foo/bar/:id',{id :'@id'},{
query: {method: 'get', isArray: true, cancellable: true}});

var apiCall = request.query({location: destination});
apiCall.$cancelRequest();
Monika
  • 31
  • 2