JavaScript自定义超时API代码实例


Posted in Javascript onApril 30, 2020

API是提供给不同语百言的一个接口,也就是对应的函数里面提供了相应的方法。我们只要用js的语法去调用想要的功能就可以。例如度js里面的BOM有screen的方法,他就是浏览器提供给我们的接口,能够对浏览器进行操作。

实现一个Ajax请求时回调超时一个函数

function timeoutify(fn,delay) {
 var intv = setTimeout( function(){// 设置超时定时器
    intv = null;
    fn( new Error( "Timeout!" ) );
 }, delay );
 return function() { 
   // 还没有超时?
   if (intv) {
     clearTimeout( intv );
// 取消 intv 定时器
     fn.apply( this, arguments );
// 通过apply将返回回来的数据绑定到自定义的fn函数上,
     /*fn( null, arguments[1] );  // 如果对apply使用原理不了解可以使用该方法*/
   } 








  // argument 是获取调用回调函数的实参





 
  };
}
// 以下是使用方式:
// 使用"error-first 风格" 回调设计 
function foo(err,data) {
 if (err) {
  console.error( err );
 }
 else {
  console.log( data );
 }
}
ajax( "http://some.url.1", timeoutify( foo, 500 ) );

自定义一个ajax回调函数:

function ajax(url, fun) {
  setTimeout(function() {
   fun(null, 11)
  }, 1000);// 1秒后执行回调函数
 };

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Firefox 无法获取cssRules 的解决办法
Oct 11 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
javascript中的self和this用法小结
Feb 08 Javascript
JS实现文字掉落效果的方法
May 06 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
js获取css的各种样式并且设置他们的方法
Aug 22 Javascript
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
使用node.js实现微信小程序实时聊天功能
Aug 13 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
JavaScript中的Proxy对象
Nov 27 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 #Javascript
JavaScript find()方法及返回数据实例
Apr 30 #Javascript
js this 绑定机制深入详解
Apr 30 #Javascript
JS 图片压缩原理与实现方法详解
Apr 29 #Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 #Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 #Javascript
JS数组Reduce方法功能与用法实例详解
Apr 29 #Javascript
You might like
虫族 ZERG 概述
2020/03/14 星际争霸
PHP explode()函数用法、切分字符串
2012/10/03 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
浅谈react前后端同构渲染
2017/09/20 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
windows下安装Python和pip终极图文教程
2017/03/05 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
Django异步任务线程池实现原理
2019/12/17 Python
购买一个高级域名:BuyDomains
2018/03/11 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
实习生求职自荐信
2014/02/07 职场文书
仓库主管岗位职责
2014/03/02 职场文书
关于倡议书的范文
2015/04/29 职场文书
小学生暑假生活总结
2015/07/13 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python