小程序多订单倒计时(避坑指南) |
您所在的位置:网站首页 › 二十分钟计时取消变成十分钟 › 小程序多订单倒计时(避坑指南) |
重要的事情放在前面
订单列表倒计时通常需要清除定时器的地方:①切换导航条,②取消订单,③数据请求之前 项目场景:提示:倒计时不稳定 例如:倒计时有时走有时不走,切换订单状态时倒计时不走。 原因分析:定时器没有清楚干净。 例如:需要清除定时器的地方:①切换导航条,②取消订单,③数据请求之前。这些地方一定要清除定时器,不然就会出现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 |