我想在axios之后执行 function2 。我没有捕获错误。但是仍然不执行Function2。
我想要但无法使用的代码:
add: function () {
axios.post('/add', this.person)
.then(response => {
if (response.data.etat) {
this.person = {};
this.function2();
}
})
.catch(error => {
console.log('errors: ', error)
})},
这是可行的,但是我只想在axios通过的情况下执行function2。
add: function () {
axios.post('/add', this.person)
.then(response => {
if (response.data.etat) {
this.person = {};
}
})
.catch(error => {
console.log('errors: ', error)
})
this.function2();
},
有什么帮助吗?谢谢 !
答案 0 :(得分:2)
您可以链接.then()块:
add: function () {
axios.post('/add', this.person)
.then(response => {
if (response.data.etat) {
this.person = {};
}
})
.then(() => {
this.function2();
})
.catch(error => {
console.log('errors: ', error)
})
}
仅当axios.post成功并且第一个this.function2
没有引发任何错误时,才会调用 .then()
。在另一种情况下-您的.catch()
将捕获该错误。
在这里您可以看到它如何实时运行: https://codepen.io/anon/pen/gZQyym?editors=1111
答案 1 :(得分:1)
由于您正在使用axios来发布数据,并且想要在操作成功完成后调用该方法,因此您应该检查响应状态,如:
add: function () {
axios.post('/add', this.person)
.then(response => {
if (response.status==200) {
this.person = {};
this.function2();
}
})
.catch(error => {
console.log('errors: ', error)
})},