vue方法等待结果再执行优化

接着上一篇,还是methods里面有三个方法,A方法,B方法,C方法,我在执行A方法里面调用B方法,B方法需要等待ajax结果回来再去调用C方法,如何更好的实现呢,下面我简化了下代码,写了个dome如下

 

A() {
  // 核实验证码是否正确
  this.B().then(result => {
    if (result){
      this.C();
    }
  })
},
B() {
    return new Promise((resolve, reject) => {
                const verifyCheckCodeUrl = 'https://xxx/sms/login'
                let formData = new FormData();
                formData.append('phone', this.phone);
                formData.append('code', this.checkCode);
                formData.append('registSource', 4);// 网页
                axios
                  .post(verifyCheckCodeUrl, formData, {
                    headers: {
                      'Content-Type': 'multipart/form-data', // 设置请求头
                    }
                  })
                  .then( (data) => {
                    var d = data.data;
                    if (d.code === 200) {
                      // todo 处理token?
                      resolve(true);
                    }else{
                      message(d.message);
                      resolve(false);
                    }
                  })
                  .catch((error) => {
                    console.log('verifyCheckCode error: ', error);
                  });
              });
}

 

posted @ 2024-07-08 16:18  蜗牛使劲冲  阅读(7)  评论(0编辑  收藏  举报