小程序多订单倒计时(避坑指南)

您所在的位置:网站首页 二十分钟计时取消变成十分钟 小程序多订单倒计时(避坑指南)

小程序多订单倒计时(避坑指南)

2024-07-11 06:42| 来源: 网络整理| 查看: 265

重要的事情放在前面

订单列表倒计时通常需要清除定时器的地方:①切换导航条,②取消订单,③数据请求之前

项目场景:

在这里插入图片描述

例如:订单待付款状态时,订单倒计时,时间结束,该订单消失。 问题描述:

提示:倒计时不稳定 例如:倒计时有时走有时不走,切换订单状态时倒计时不走。

原因分析:

定时器没有清楚干净。 例如:需要清除定时器的地方:①切换导航条,②取消订单,③数据请求之前。这些地方一定要清除定时器,不然就会出现bug

解决方案:

提示:一定要记得及时清除定时器:

下面附上我的代码:

1、后台返回倒计时时间(其实也可以让后台返回订单结束的时间,前端获取当前时间。然后算出时间差,由于是多订单,所以需要把时间存在一个数组里面。都怪自己技术太差/(ㄒoㄒ)/~~,只能辛苦后台返回时间了)

// 倒计时 if (that.data.orderStatus == 0 || that.data.orderStatus == 5) { let endTimeList = [] that.data.orderList.forEach(o => { if (o.order_cancel_time) { //order_cancel_time 是订单列表里面代表倒计时的字段 console.log("o.order_cancel_time存在") endTimeList.push(o.order_cancel_time) } else { // endTimeList.push(-1) } }) that.setData({ actEndTimeList: endTimeList }); console.log("时间的数组", JSON.stringify(that.data.actEndTimeList)) console.log("时间的orderList", that.data.orderList) if (that.data.actEndTimeList.length 0) { // let time = (endTime - newTime) / 1000; let time = parseInt(o); // 获取天、时、分、秒 // let day = parseInt(time / (60 * 60 * 24)); var hou = parseInt(time / (60 * 60)); var min = parseInt(time % (60 * 60 * 24) % 3600 / 60); var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); obj = { // day: this.timeFormat(day), hou: this.timeFormat(hou), min: this.timeFormat(min), sec: this.timeFormat(sec), num: i } // if(o


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3