V2.0
需求沟通
需求分析
计时模块
3.1.1、功能描述←计时模块用于做题过程中对每一题的作答进行30秒倒计时,超时直接判错,同时将总用时显示在界面上;记录每次做题的总用时。
3.1.2、接口描述←与判定模块的接口为超时判定,若单题用时超过 30秒则算作错误,需要将信号给到判定模块:当用户开始做答或点击确认时接收信号,开始或是结束计时:与与本地数据库的接口为储存,需要保存单次(15题)的总用时信息用于历史记录查看。
3.1.3、数据结构描述计时的秒数为 int 整型,需要有计时结束时触发的回调函数,用于通知外部模块。对于本地缓存,可使用wx.setStorageSync来进行存储。
3.1.4、实现思路
此模块逻辑较简单清晰,可在is文件中直接编写函数,注意设置对外接口。
实现过程
计时模块用于做题过程中对每一题的作答进行30秒倒计时,超时直接判错。
技术点:倒计时+判错。
计时模块用于做题过程中对每一题的作答进行30秒倒计时,超时直接判错。使用selfInterval实现倒计时功能,每隔一秒执行一次,超时直接判错逻辑函数。
// 计时模块用于做题过程中对每一题的作答进行30秒倒计时,超时直接判错
const totalSeconds = 30;
// 使用selfInterval实现倒计时功能
countDownStart() {
this.setData({
seconds: totalSeconds
});
selfInterval = setInterval(()=>{
this.data.seconds--
this.setData({
seconds: this.data.seconds
});
if(this.data.seconds == 0){
clearInterval(selfInterval);
selfInterval = null;
// 超时直接判错逻辑函数
this.onCountDownfinished();
}
}, 1000);
},