首页 > Web开发 > 详细

JS给XMLHttpRequest添加filter

时间:2019-07-18 21:00:25      阅读:65      评论:0      收藏:0      [点我收藏+]
function XMLHttpRequestFilter(){
    let base = XMLHttpRequest.prototype.open;
	
	let filter_list = [];
	
	let add = function(fun, key=‘_fn‘){
		filter_list.push([key, fun])
		XMLHttpRequest.prototype.open = function(...args){
			filter_list.map(x=>{
				let check = x[1](args)
				if(check){
					throw check; 
				}
			});
			base.apply(this,args)
		}	
	};
	
	let remove = function(key=‘_fn‘){
		filter_list = filter_list.filter(x=>x[0]!=key);
	};
	
	let removeAll = function(){
		filter_list.length=0;
		XMLHttpRequest.prototype.open = base	
	};
	
	return {add, remove, removeAll}
}

t.add(console.log, ‘k1‘)
t.add(console.dir, ‘k2‘)
t.add(console.log, ‘k3‘)

t.remove(‘k2‘)
t.removeAll()

t.add(console.log, "k1")
t.add(()=>"123", ‘k2‘)
t.add(console.dir, "k1")

t.remove("k2")

  

JS给XMLHttpRequest添加filter

原文:https://www.cnblogs.com/413xiaol/p/11209827.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!