@gdjiami/jslib
Version:
Jiami FrontEnd helpers and Services
70 lines (66 loc) • 1.2 kB
JavaScript
/**
* 函数相关工具函数
*/
/**
* 空函数,一般用于占位
*/
export var noop = function noop() {};
/**
* 空函数,一般用于占位. 可以提供一个警告信息
*/
export var noopWithWarn = function noopWithWarn(message) {
return function () {
console.warn(message);
};
};
/**
* 销毁器队列,存储多个销毁器,在组件卸载时调用 clear 方法
*
* @example
*
* ```js
* useEffect(() => {
* const d = disposer()
* d.add(() => {
* ...
* return () => {
* // 销毁
* ...
* }
* })
* return d.clear
* })
*
* ```
*/
export function disposer() {
var list = [];
return {
add: function add(i) {
return list.push(i);
},
clear: function clear() {
list.forEach(function (i) {
return i();
});
list = [];
}
};
}
/**
* 返回disposer的 setTimeout
*
* @param callback 延时操作方法
* @param time 延时时长
*
* @example
* ```js
* timeout(() => { ... }, 1000)
* ```
*/
export function timeout(callback, time) {
var timer = setTimeout(callback, time);
return function () {
clearTimeout(timer);
};
}