axios 异步操作执行顺序
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为你的
console.log(333)
是在catch
外面的。。如果看不懂的话,学习一下
Promise
axios
是异步请求,在它外面且在下面的代码不会等待它完成,会直接开始运行,而异步请求体里面的内容会在其请求成功或者失败才执行相应的代码。