更新大理市民卡app
diff --git a/uview-ui/libs/function/debounce.js b/uview-ui/libs/function/debounce.js
new file mode 100644
index 0000000..4f1027b
--- /dev/null
+++ b/uview-ui/libs/function/debounce.js
@@ -0,0 +1,29 @@
+let timeout = null;
+
+/**
+ * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
+ *
+ * @param {Function} func 要执行的回调函数
+ * @param {Number} wait 延时的时间
+ * @param {Boolean} immediate 是否立即执行
+ * @return null
+ */
+function debounce(func, wait = 500, immediate = false) {
+ // 清除定时器
+ if (timeout !== null) clearTimeout(timeout);
+ // 立即执行,此类情况一般用不到
+ if (immediate) {
+ var callNow = !timeout;
+ timeout = setTimeout(function() {
+ timeout = null;
+ }, wait);
+ if (callNow) typeof func === 'function' && func();
+ } else {
+ // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
+ timeout = setTimeout(function() {
+ typeof func === 'function' && func();
+ }, wait);
+ }
+}
+
+export default debounce