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)代码>此时您需要停止请求