zoukankan      html  css  js  c++  java
  • JS给XMLHttpRequest添加filter

    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")
    

      

  • 相关阅读:
    UIImageView变灰
    IOS 瀑布流
    IOS9适配 MARK
    MAC PHP MARK
    IOS第三方库 MARK
    IOS聊天对话界面
    UILabel自适应宽度的函数详解
    UIControl的使用
    IOS @2X.png
    自定义UIAlertView
  • 原文地址:https://www.cnblogs.com/413xiaol/p/11209827.html
Copyright © 2011-2022 走看看