小程序已有then同步执行

如果要确保where.get.then之后的代码块同步执行是把后面的都写进箭头函数内吗?
(实际操作中发现wx.showToast会先于return执行,使程序没有达到预期效果)

img

checkin1.where({_id:phone}).get().then( res=> {
              if (res.data[0][y+m+d+'P'] != '#FFFFFF') {
                checkinsuccess=true;
                return;
              }
            })
            if (hour*60+minute-2<checkinhour*60+checkinminute) {
              wx.showToast({
                title: '签到已成功',
                icon: 'success',
                duration: 3000,
              })
              checkin1.where({_id:phone}).update({
                data: {
                 [[y+m+d+'P']] : '#44e036'  //准时
                },
              })
            } else if (hour*60+minute-17<checkinhour*60+checkinminute) {
              wx.showToast({
                title: '迟到啦下次注意',
                image: '/assets/images/checkin/late.png',
                duration: 3000,
              })
              checkin1.where({_id:phone}).update({
                data: {
                 [[y+m+d+'P']] : '#FFF200'  //迟到
               },
              })
              crecord.where({_id:phone}).update({
                data: {
                  [[classn]] : db.command.inc(1)  //迟到
                },
              })
            } else {
              wx.showToast({
                title: '缺勤啦下次注意',
                image: '/assets/images/checkin/absence.png',
                duration: 3000,
              })
              checkin1.where({_id:phone}).update({
                data: {
                 [[y+m+d+'P']] : '#ED1C24'  //缺勤
                },
              })
              crecord.where({_id:phone}).update({
                data: {
                  [[classm]] : db.command.inc(1)  //缺勤
                },
              })
            }
            checkinsuccess=true;
            checkinavailable=true;

是的,如果要确保where.get.then之后的代码块同步执行,可以把后面的代码块都写进箭头函数内。
在实际操作中,wx.showToast会先于return执行,这是因为wx.showToast是一个异步操作,会先执行完后面的代码块,然后再执行wx.showToast。如果要确保wx.showToast在return之后执行,可以使用async/await来等待wx.showToast执行完毕再执行return。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632