axios 异步操作执行顺序

发布于 2022-09-06 10:47:51 字数 764 浏览 9 评论 0

submitPwd () {
      if (this.oldPwd !== '' && this.newPwd !== '' && this.password !== '') {
        console.log(111)
        axios.post(httpUrl.checkOldPwd, this.oldPwd)
        .then(res => {
          console.log(222)
          this.status = true
        })
        .catch(err => console.log(err))
        console.log(333)
        console.log(this.status)
        if (this.status) {
          console.log('旧密码验证通过')
        } else {
          console.log('旧密码输入错误')
        }
      } else {
        console.log('密码不能为空')
      }
    }

data中 status: false

以上代码为一个提交密码的方法案例,理想状态的输出顺序应该是:
111
222
333
true
旧密码验证通过

但是实际输出顺序是:
111
333
false
旧密码输入错误
222

这是为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请持续率性 2022-09-13 10:47:51

因为你的console.log(333)是在catch外面的。。
如果看不懂的话,学习一下Promise

丶情人眼里出诗心の 2022-09-13 10:47:51

axios是异步请求,在它外面且在下面的代码不会等待它完成,会直接开始运行,而异步请求体里面的内容会在其请求成功或者失败才执行相应的代码。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文