标签:api first rip func 设计 code 一个 设置 调用
实现一个Ajax请求时回调超时一个函数
1 function timeoutify(fn,delay) { 2 var intv = setTimeout( function(){ // 设置超时定时器 3 intv = null; 4 fn( new Error( "Timeout!" ) ); 5 }, delay ); 6 return function() { 7 // 还没有超时? 8 if (intv) { 9 clearTimeout( intv ); // 取消 intv 定时器 10 fn.apply( this, arguments ); // 通过apply将返回回来的数据绑定到自定义的fn函数上, 11 } // argument 是获取调用回调函数的实参 12 }; 13 } 14 以下是使用方式: 15 // 使用"error-first 风格" 回调设计 16 function foo(err,data) { 17 if (err) { 18 console.error( err ); 19 } 20 else { 21 console.log( data ); 22 } 23 } 24 ajax( "http://some.url.1", timeoutify( foo, 500 ) );
标签:api first rip func 设计 code 一个 设置 调用
原文地址:https://www.cnblogs.com/PasserByOne/p/12325917.html