astuteweb-utils
Version:
机敏web开发常用工具函数
86 lines (74 loc) • 1.63 kB
JavaScript
/**
* 防抖
* 只在最后一次点击过指定时间才执行
* @export
* @param {*} fn
* @param {*} wait
* @return {*}
*/
export function debounce(fn, wait) {
let timeout = null;
return function() {
if(timeout !== null) clearTimeout(timeout);
timeout = setTimeout(fn, wait);
}
}
/**
* 节流
* 高频触发事件时,第一次立即执行,再次触发事件时,如果定时器存在就不执行,直到延迟时间后定时器执行函数并清空定时器,这样便可设置下一个定时器。
* @export
* @param {*} fn
* @param {*} wait
* @return {*}
*/
export function throttle(fn, wait) {
let timer = null;
return function() {
if(!timer) {
timer = setTimeout(() => {
fn.apply(this, arguments);
timer = null;
}, wait)
}
}
}
/**
*输出警告
*
* @export
* @param {*} msg
* @param {*} err
*/
export function warn(msg, err) {
if(typeof console != 'undefined') {
console.warn('warn:' + msg);
if(err) {
console.warn(err.stack);
}
}
}
/**
*输出错误
*
* @export
* @param {*} msg
* @param {*} err
*/
export function err(msg, err) {
if(typeof console != 'undefined') {
console.error('error:', msg);
if(err) {
console.err(err.stack);
}
}
}
/**
*校验是否为函数
*
* @export
* @param {*} val
* @return {*}
*/
export function isFunction(val) {
return typeof val === 'function';
}