@gdjiami/jslib
Version:
Jiami FrontEnd helpers and Services
70 lines (69 loc) • 1.44 kB
JavaScript
/**
* 函数相关工具函数
*/
/**
* 空函数,一般用于占位
*/
export var noop = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
};
/**
* 空函数,一般用于占位. 可以提供一个警告信息
*/
export var noopWithWarn = function (message) { return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
console.warn(message);
}; };
/**
* 销毁器队列,存储多个销毁器,在组件卸载时调用 clear 方法
*
* @example
*
* ```js
* useEffect(() => {
* const d = disposer()
* d.add(() => {
* ...
* return () => {
* // 销毁
* ...
* }
* })
* return d.clear
* })
*
* ```
*/
export function disposer() {
var list = [];
return {
add: function (i) { return list.push(i); },
clear: function () {
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);
};
}