zoukankan      html  css  js  c++  java
  • JavaScript自定义超时API

    实现一个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          /*fn( null, arguments[1] );   // 如果对apply使用原理不了解可以使用该方法*/
    12       }                     // argument 是获取调用回调函数的实参             
    13    };
    14 }
    15 // 以下是使用方式:
    16 // 使用"error-first 风格" 回调设计 
    17 function foo(err,data) {
    18   if (err) {
    19     console.error( err );
    20   }
    21   else {
    22     console.log( data );
    23   }
    24 }
    25 ajax( "http://some.url.1", timeoutify( foo, 500 ) ); 

     自定义一个ajax回调函数:

    1 function ajax(url, fun) {
    2   setTimeout(function() {
    3     fun(null, 11)
    4   }, 1000);  // 1秒后执行回调函数
    5 };
  • 相关阅读:
    demo04-默认标签
    demo03-段落标签
    demo02-标题标签
    demo01-注释标签
    前端基础介绍
    xadmin的详细使用
    设置Linux环境变量中文显示乱码
    ES应用
    HTTP协议
    jboss
  • 原文地址:https://www.cnblogs.com/PasserByOne/p/12325917.html
Copyright © 2011-2022 走看看