在路线更改时,我需要中止以前路线中的所有待处理请求,这样我就不会遇到上一条路线的响应问题,这些路线会破坏我当前路线上的数据(有时会发生前一路线的响应)很长时间才能完成。)
我考虑过使用http interceptor:
$httpProvider.interceptors.push(function($q) {
return {
'request': function(config) {
},
'response': function(response) {
}
};
});
在请求函数中,我可以使用建议here的promise修改config.timeout
,并将所有延迟对象存储在全局缓存中,以便我可以取消所有这些。
此方法存在的问题是,它可能会在代码的其他位置覆盖 config.timeout
。
我认为另一种解决方案可能是取消XMLHttpRequest
级别的所有ajax请求,但我不知道该怎么做。
有什么建议吗?感谢。