使用回调函数解决Vue异步问题

场景:

密码加密后,修改密码的过程中原密码的检验

异步的出现:

1.在data中定义了一个flag用于接受后端比较密码后的布尔值,默认false

 data() {
    return {
        flag:false
    };
  },

2.后端比较后赋值给flag

复制代码
//检测密码
checkPassword(userid, checkPassword) { Apiuser.checkPassword(userid, checkPassword).then( (response)
=> { console.log(response); this.flag=response.data; } ); },
复制代码

3.更新密码之前调用检测密码的方法检测

 //修改密码
 updatePwd() {
       //原密码检测
       this.checkPassword(this.user.content.id, this.oldPwd);
       if(this.flag){
              
       })
  },

结果:第一次点击确定flag为false,第二次点击为true,出现了异步

解决:

1.可以删除flag

2.修改检测密码的方法,使用函数回调

//检测密码
checkPassword(userid, checkPassword, callback) {
   Apiuser.checkPassword(userid, checkPassword, callback).then(
      (response) => {
       callback(response.data);
     }
  );
}

3.修改更新密码的方法

复制代码
 //修改密码
 updatePwd() {
      //函数回调
      this.checkPassword(this.user.content.id, this.oldPwd, (flag) =>{
         if(flag){
            
         }
     )}
}
复制代码
posted @   时光里的少年  阅读(810)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示