在 $http.post 的捕获/错误中调用倒计时函数不会在 vue js 中执行



我有这个简单的代码,它在 $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 方法

最新更新