Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如果组件在Nativescript Vue中处于非活动状态,如何停止代码执行_Vue.js_Nativescript_Nativescript Vue - Fatal编程技术网

Vue.js 如果组件在Nativescript Vue中处于非活动状态,如何停止代码执行

Vue.js 如果组件在Nativescript Vue中处于非活动状态,如何停止代码执行,vue.js,nativescript,nativescript-vue,Vue.js,Nativescript,Nativescript Vue,我的应用程序应该每5秒发送一次关于设备的数据,但是如果我最小化应用程序并重新打开它,或者如果我只是返回页面并返回,代码甚至会在后台继续运行。当我再次打开应用程序时,发送数据的功能叠加在已经工作的功能上,数据离开的频率是原来的两倍,因此您可以无限期地创建一个函数 如何解决这个问题 我的方法: sendDeviceInfo(){ console.log("1111"); axios.post('', {

我的应用程序应该每5秒发送一次关于设备的数据,但是如果我最小化应用程序并重新打开它,或者如果我只是返回页面并返回,代码甚至会在后台继续运行。当我再次打开应用程序时,发送数据的功能叠加在已经工作的功能上,数据离开的频率是原来的两倍,因此您可以无限期地创建一个函数

如何解决这个问题

我的方法:

sendDeviceInfo(){
                console.log("1111");
                axios.post('', {
                    device: DeviceInfo.systemManufacturer() + ' ' +DeviceInfo.deviceName(),
                    deviceId: DeviceInfo.deviceId(),
                    appId: DeviceInfo.appVersion(),
                    email: this.email,
                    battery: DeviceInfo.batteryLevel(),
                    batteryCharging: DeviceInfo.isBatteryCharging() === true ? 1 : 0
                });
            }
并安装:

this.sendDeviceInfo();
setInterval(this.sendDeviceInfo, 5000);

您需要清除组件销毁时的间隔
setInterval
返回一个可用于清除的引用

data: () => ({
    ...yourDataStuff,
    sendDeviceInfoInterval: null
}),

mounted() {
    this.sendDeviceInfoInterval = setInterval(this.sendDeviceInfo, 5000);
},

beforeDestroy() {
    clearInterval(this.sendDeviceInfoInterval);
}

感谢这正是我想要的。