首页 >> js开发 >> js代码JavaScript自定义超时API代码实例
js代码JavaScript自定义超时API代码实例
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
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 ) );
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秒后执行回调函数
};
function ajax(url, fun) {
setTimeout(function() {
fun(null, 11)
}, 1000);
// 1秒后执行回调函数
};以上就是本文的全部内容,希望对大家的学习有所帮助。
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 ) );
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秒后执行回调函数
};
function ajax(url, fun) {
setTimeout(function() {
fun(null, 11)
}, 1000);
// 1秒后执行回调函数
};以上就是本文的全部内容,希望对大家的学习有所帮助。
相关文章:
- jsvue+axios全局添加请求头和参数操作js大全
- jsvue实现用户长时间不操作自动退出登录功能的实现代码js大全
- jsJS使用Chrome浏览器实现调试线上代码js大全
- jsVue自动构建发布脚本的方法示例js大全
- js代码javascript递归函数定义和用法示例分析
- jsvue在响应头response中获取自定义headers操作js大全
- jsvue中全局路由守卫中替代this操作(this.$store/this.$vux)js大全
- js解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题js大全
- JavaScript深入了解Vue.js 混入(mixins)
- jsvue 页面回退mounted函数不执行的解决方案js大全