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 相关文章推荐
jQuery表单验证插件formValidator(改进版)
Feb 03 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
Jun 12 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
vue debug 二种方法
Sep 16 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
详解nvm管理多版本node踩坑
Jul 26 Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 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
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
vue配置多页面的实现方法
2018/05/22 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
对python调用RPC接口的实例详解
2019/01/03 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Django CBV类的用法详解
2019/07/26 Python
Python PIL图片添加字体的例子
2019/08/22 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
营销与策划个人求职信
2013/09/22 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
员工工作自我评价
2014/09/26 职场文书
求职自我推荐信
2015/03/24 职场文书
绿色环保倡议书
2015/04/28 职场文书
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技