gpt4 book ai didi

javascript - 非同步启动 Javascript 间隔并在运行 3 次后停止

转载 作者:行者123 更新时间:2023-12-02 17:04:16 24 4
gpt4 key购买 nike

我有一个函数可以让 OpenLayer 标记闪烁三次。仅显示控制台消息的简化版本:

function blink_three_times(layername){
var x = 0;
setTimeout(function() {
blink_in = setInterval(function() {
x = x+1;
if ( x === 3) {clearInterval(blink_in)};
console.log(layername + ' is visible');
}, 500);
}, 250);

blink_out = setInterval(function() {
if (x === 2) {clearInterval(blink_out)};
console.log(layername + ' is invisible');
}, 500);
};

它工作正常,但如果在一次完成之前启动多次,计数器 (x) 会超过 3 并且间隔不会停止。我怎样才能避免这种情况?

最佳答案

那是因为您在全局范围内拥有函数 blink_inblink_out。当您第二次调用它时,它会覆盖函数的定义。

使用 var 定义它们以使它们成为本地的。

var blink_in = setInterval(function() {..})

var blink_out = setInterval(function() {..})

DEMO

关于javascript - 非同步启动 Javascript 间隔并在运行 3 次后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25402867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com