如何在 nativescript 中通过点击事件或离开页面停止 timer.setinterval
How to stop timer.setinterval with a tap event or leaving page in nativescript
我有一个计数器,它在加载页面时启动并在时间 == 0 触发对话框并导航到另一个页面时停止。但我也想在用户点击按钮或他放弃并离开页面时停止它。
下面是我启动计时器并在时间 === 0 时结束计时器的代码
var timeKeep = vm.time;
var count = 0;
countId = timer.setInterval(() => {
timeCountDown();
count += 1;
if (count === timeKeep) {
timer.clearInterval(countId);
dialogs.alert({
message: "Time Up!",
okButtonText: "OK"
});
aemnavigation.goResults(vm.correct);
}
}, 1000); */
var timeKeep = vm.time;
var count = 0;
var countId = timer.setInterval(() => {
timeCountDown();
count += 1;
if (count === timeKeep) {
timer.clearInterval(countId);
dialogs.alert({
message: "Time Up!",
okButtonText: "OK"
});
aemnavigation.goResults(vm.correct);
}
}, 1000);
exports.onButtonTap = function() {
timer.clearInterval(countId);
/** Do whatever else you need to **/
}
exports.onNavigatingFrom = function() {
timer.clearInterval(countId);
}
在您的声明中 UI XML JS 文件:
<Page navigatingFrom="onNavigatingFrom">
<Button tap="onButtonTap" text="Click Me"/>
</Page>
我也会推荐你的
timer.clearInterval(countId) 函数你验证countId仍然有效;清除间隔后使其无效;这样你就没有任何奇怪的极端情况了。
我有一个计数器,它在加载页面时启动并在时间 == 0 触发对话框并导航到另一个页面时停止。但我也想在用户点击按钮或他放弃并离开页面时停止它。
下面是我启动计时器并在时间 === 0 时结束计时器的代码
var timeKeep = vm.time;
var count = 0;
countId = timer.setInterval(() => {
timeCountDown();
count += 1;
if (count === timeKeep) {
timer.clearInterval(countId);
dialogs.alert({
message: "Time Up!",
okButtonText: "OK"
});
aemnavigation.goResults(vm.correct);
}
}, 1000); */
var timeKeep = vm.time;
var count = 0;
var countId = timer.setInterval(() => {
timeCountDown();
count += 1;
if (count === timeKeep) {
timer.clearInterval(countId);
dialogs.alert({
message: "Time Up!",
okButtonText: "OK"
});
aemnavigation.goResults(vm.correct);
}
}, 1000);
exports.onButtonTap = function() {
timer.clearInterval(countId);
/** Do whatever else you need to **/
}
exports.onNavigatingFrom = function() {
timer.clearInterval(countId);
}
在您的声明中 UI XML JS 文件:
<Page navigatingFrom="onNavigatingFrom">
<Button tap="onButtonTap" text="Click Me"/>
</Page>
我也会推荐你的 timer.clearInterval(countId) 函数你验证countId仍然有效;清除间隔后使其无效;这样你就没有任何奇怪的极端情况了。