调用$ http拦截器后停止执行angular $ timeout

时间:2016-04-27 11:54:09

标签: angularjs timeout interceptor

我使用$ httpProvider.interceptors来捕获401或403请求,之后我结束会话并重定向到登录页面。有一个具有超时功能的功能,我想在执行401或403响应时停止执行超时

3 个答案:

答案 0 :(得分:1)

您可以轻松取消暂停

var myTimeout = $timeout(function() {}, 1000);
// Check http status code
if (someHttpCode === 401){
  // Stop the timeout
  $timeout.cancel(myTimeout);
}

答案 1 :(得分:0)

您可以使用$timeout.cancel(timer)停止计时器。

在文档中阅读更多相关信息: $timeout

答案 2 :(得分:-1)

您需要保存计时器,例如this

var myVar;

function myFunction() {
    myVar = setTimeout(function(){ alert("Hello"); }, 3000);
}

function myStopFunction() {
    clearTimeout(myVar);
}