Javascript 禁止setInterval进行REST调用

Javascript 禁止setInterval进行REST调用,javascript,vue.js,vuejs2,axios,Javascript,Vue.js,Vuejs2,Axios,我开始工作,但现在我遇到了一个新问题: <script> import Vue from 'vue'; import axios from "axios"; export default { name: 'SelectServices', data: function() { return { selectedService: "", services: [], updateEx

我开始工作,但现在我遇到了一个新问题:

<script>
import Vue from 'vue';
import axios from "axios";

export default {
    name: 'SelectServices',
    data: function() {
        return {
            selectedService: "",
            services: [],
            updateExisting: "",
            showStatus: false,
            statusMessage : "",
            interval : undefined
        }
    },
    mounted() {
      this.interval = setInterval(() => {
          axios.get(this.my_url).then(res => { /* do something */});
   }, 30000 );
}

    },
    methods : {
        selectServiceToDeploy: function(){
            // alert("micro services");
        },
        deploySelected: function(){

            this.showStatus = true ;
            // animate open the status window.
            $("#status_update").animate({height: '500'})
            var url = "http://localwebsite.com:5060/services/request_deploy";
                axios.post(url)
                .then(response => {
                    if (typeof response.data.reason != "undefined"){
                        alert("Recieved Status: " + response.data.status + ",\nReason: " + response.data.reason);
                    }
                    var req_id = response.data.result.request_id;
                    this.statusMessage = "Initiating deployment of Services for Request ID: " + req_id ;
                })
                .catch((err) => {
                    console.log("Error happened: " + err.request.message);
                    alert(err);
                    return Promise.reject(err);
                })
                console.log(url);
                console.log(log_url);

        }
    }
}

从“Vue”导入Vue;
从“axios”导入axios;
导出默认值{
名称:“SelectServices”,
数据:函数(){
返回{
所选服务:“”,
服务:[],
updateExisting:“”,
showStatus:false,
状态消息:“”,
间隔:未定义
}
},
安装的(){
this.interval=setInterval(()=>{
get(this.my_url).then(res=>{/*dosomething*/});
}, 30000 );
}
},
方法:{
选择ServiceToDeploy:function(){
//警报(“微服务”);
},
deploySelected:函数(){
this.showStatus=true;
//设置打开状态窗口的动画。
$(“#状态更新”)。动画({height:'500'})
变量url=”http://localwebsite.com:5060/services/request_deploy";
axios.post(url)
。然后(响应=>{
if(type of response.data.reason!=“未定义”){
警报(“接收状态:+response.data.Status+”,\n原因:+response.data.reason);
}
var req_id=response.data.result.request_id;
this.statusMessage=“为请求ID:+req\u ID启动服务部署;
})
.catch((错误)=>{
log(“发生错误:+err.request.message”);
警惕(err);
退回承诺。拒绝(错误);
})
console.log(url);
console.log(日志url);
}
}
}

问题是,即使针对特定的
request\u id
显示了所有日志消息,
setInterval
仍在进行
axios.get
调用
log\u url
。当从
log\u url
接收到的
response.data.logs
停止更新或状态设置为deployed时,如何阻止调用的发生。在数据库中

可以调用
clearInterval(this.interval)此时您需要停止请求