【发布时间】:2016-04-27 20:47:04
【问题描述】:
我正在使用 $httpProvider.interceptors 来捕获 401 或 403 请求,然后我结束会话并重定向到登录页面。有一个具有超时功能的函数,如果我收到 401 或 403 响应,我想停止执行此超时
【问题讨论】:
标签: angularjs timeout interceptor
我正在使用 $httpProvider.interceptors 来捕获 401 或 403 请求,然后我结束会话并重定向到登录页面。有一个具有超时功能的函数,如果我收到 401 或 403 响应,我想停止执行此超时
【问题讨论】:
标签: angularjs timeout interceptor
你可以很容易地取消超时
var myTimeout = $timeout(function() {}, 1000);
// Check http status code
if (someHttpCode === 401){
// Stop the timeout
$timeout.cancel(myTimeout);
}
【讨论】:
$timeout(1000) 即可获得承诺。
您可以使用$timeout.cancel(timer) 来停止计时器。
在文档中阅读有关它的更多信息: $timeout
【讨论】:
你需要保存计时器,比如this:
var myVar;
function myFunction() {
myVar = setTimeout(function(){ alert("Hello"); }, 3000);
}
function myStopFunction() {
clearTimeout(myVar);
}
【讨论】:
setTimeout。