我有这个简单的代码,它在 $http.post 的 catch 函数中调用倒数计时器。
this.$http.post('/api/task/post', updatedTask ,function(data){
alert('success!')
}).catch(function(data){
alert('Error!');
vm.StartTimer(captionClass);
});
但是,当发生错误时,vm.StartTimer(captionClass)不会执行,然后尝试在单击事件中调用相同的函数,它确实有效。
TestCounter: function(){
vm.StartTimer('.tm-task-caption-title-1');
},
这是倒数计时器功能
StartTimer: function(display) {
var counter = 5;
var interval =setInterval(function() {
$(display).html(counter);
counter--;
if(counter == 0){
clearInterval(interval);
}
}, 1000);
},
对我有用的是 vue-resource 文档中使用的语法,在您的情况下,它应该是:
this.$http.post('/api/task/post', updatedTask ,function(data){
alert('success!')
}, function(data){
alert('Error!');
vm.StartTimer(captionClass);
});
如您所见,没有捕获部分。 Vue 资源使用承诺的自定义实现,所以我不太确定 Http 方法中是否支持该 catch 函数。无论如何,我已经在 vue 资源中使用了承诺,但使用 resource 方法