1 Star 0 Fork 45

Mr.Chen/myCode

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
function.ts 976 Bytes
一键复制 编辑 原始数据 按行查看 历史
阿宇的编程之旅 提交于 2022-08-17 17:44 +08:00 . feat:tools
import { ICatchAwait, IThrottle, IDebounce, IDefer } from "./index.js"
export const throttle: IThrottle = (fn, time) => {
let _timer = null;
return (...args) => {
if (_timer) return;
_timer = setTimeout(() => {
fn.call(this, ...args);
_timer = null;
}, time);
};
};
export const debounce: IDebounce = (fn, time) => {
let _timer = null;
return (...args) => {
if (_timer) {
clearTimeout(_timer);
_timer = null;
}
_timer = setTimeout(() => {
fn.call(this, ...args);
}, time);
};
}
export const defer: IDefer = () => {
let resolve, reject
return {
promise: new Promise<void>((_resolve, _reject) => {
resolve = _resolve
reject = _reject
}),
resolve, reject
}
}
export const catchAwait: ICatchAwait<Promise<any>> = (defer) => defer.then(res => [null, res]).catch(err => [err])
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/gitee_java_coder/myCode.git
git@gitee.com:gitee_java_coder/myCode.git
gitee_java_coder
myCode
myCode
master

搜索帮助