我有这个简单的代码,它在$ 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)没有执行,那么尝试在click事件中调用相同的函数,它确实有效。
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);
},
答案 0 :(得分:0)
对我有用的是vue-resource docs中使用的语法,在您的情况下,它应该是:
this.$http.post('/api/task/post', updatedTask ,function(data){
alert('success!')
}, function(data){
alert('Error!');
vm.StartTimer(captionClass);
});
如你所见,没有捕获部分。 Vue资源使用promises的自定义实现,所以我不确定在Http方法中是否支持catch函数。无论如何,我使用了vue资源的promises,但是使用了resource method