我正在尝试将设置的时间间隔函数发送到Iframe后停止,但是clearInterval()实际不起作用。
我也想使用
代码如下:
<script>
let interval = null;
let count = 0;
interval = setInterval(function(){
document.getElementById('iframe')
.contentWindow.postMessage({
userData: {
info1: localStorage.info1,
info2: localStorage.info2,
info3: localStorage.info3
}},
'http://localhost:8081/list') }, 10000);
export default {
name: 'Dashboard',
components: {
ToolBar
},
methods: {
connect(){
clearInterval(interval);
console.log("CONNECTING!!!!!!!!!");;
this.$router.push("/aplicativo");
}
},
data () {
return {
//
}
},
}
</script>
答案 0 :(得分:1)
通过在组件的setInterval
函数中初始化mounted
并将间隔ID存储为组件的一部分,您将获得更好的结果:
export default {
data() {
return {
this.interval = null;
}
},
mounted() {
this.interval = setInterval(...);
},
connect() {
clearInterval(this.interval);
}
}
答案 1 :(得分:1)
我没有给您直接答案,而是一种方法
mounted() {
let tries = 3; // suppose you want to stop after 3 tries
let interval = setInterval(() => {
if (!tries--) {
clearInterval(interval);
} else {
// TODO: your stuff
}
}, 1000); // interval for 1000 milisec
}