购物车步进器增加防抖

This commit is contained in:
mahe
2022-11-30 11:32:45 +08:00
parent a0f1417f42
commit 861bf1eb07
2 changed files with 35 additions and 19 deletions

View File

@@ -1,4 +1,3 @@
/**
* 解析url参数
* @example ?id=12345&a=b
@@ -9,7 +8,7 @@ function urlParse(url) {
let reg = /[?&][^?&]+=[^?&]+/g;
let arr = url.match(reg);
if (arr) {
arr.forEach((item) => {
arr.forEach(item => {
let tempArr = item.substring(1).split("=");
let key = decodeURIComponent(tempArr[0]);
let val = decodeURIComponent(tempArr.splice(1).join("="));
@@ -21,28 +20,28 @@ function urlParse(url) {
const getNetworkType = () => {
uni.getNetworkType({
success: (res) => {
success: res => {
if (res.networkType === "none") {
uni.showToast({
title: "网络好像有点问题,请检查后重试!",
duration: 2000,
icon: "none",
icon: "none"
});
let pages = getCurrentPages();
if (pages.length) {
let route = pages[pages.length - 1].route;
if (route !== "pages/empty/empty") {
uni.navigateTo({
url: `/pages/empty/empty?type=wifi`,
url: `/pages/empty/empty?type=wifi`
});
}
} else {
uni.navigateTo({
url: `/pages/empty/empty?type=wifi`,
url: `/pages/empty/empty?type=wifi`
});
}
}
},
}
});
};
@@ -64,8 +63,8 @@ const throttle = (fn, that, gapTime) => {
* @param seconds
* @returns {{day : *, hours : *, minutes : *, seconds : *}}
*/
const countTimeDown = (seconds) => {
const leftTime = (time) => {
const countTimeDown = seconds => {
const leftTime = time => {
if (time < 10) time = "0" + time;
return time + "";
};
@@ -73,7 +72,7 @@ const countTimeDown = (seconds) => {
day: leftTime(parseInt(seconds / 60 / 60 / 24, 10)),
hours: leftTime(parseInt((seconds / 60 / 60) % 24, 10)),
minutes: leftTime(parseInt((seconds / 60) % 60, 10)),
seconds: leftTime(parseInt(seconds % 60, 10)),
seconds: leftTime(parseInt(seconds % 60, 10))
};
};
@@ -94,10 +93,26 @@ const theNextDayTime = () => {
).getTime() - nowDate.getTime();
return parseInt(time / 1000);
};
export {
getNetworkType,
throttle,
countTimeDown,
theNextDayTime,
// 防抖
const debounce = (fn, delay) => {
// 时间期限
var delays = delay || 200;
var timer;
// 闭包
return function() {
// 考虑作用域上下文环境apply需要用到this对象
var th = this;
// 接收的参数用 ES6 中的 rest 参数统一存储到变量 args 中。arguments就是传入的参数数组,而且个数可以不确定的传回给fn不确定函数到底有多少个参数用arguments来接收
var args = arguments;
// 判断还在定时,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
timer = null;
// 执行方法
fn.apply(th, args);
}, delays);
};
};
export { getNetworkType, throttle, countTimeDown, theNextDayTime, debounce };