首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的间隔在第二次被调用后不再继续。

我的间隔在第二次被调用后不再继续。
EN

Stack Overflow用户
提问于 2022-06-07 12:00:44
回答 3查看 66关注 0票数 0

我试过什么

代码语言:javascript
复制
let intervalTimer = null;
function startTimer(callback, interval) {
    // Write the code that goes here
    intervalTimer = setInterval(() => {
        let obj = {number:0};
        if(callback(obj)) {

        } else {

        }
    },interval);
}
  
function callback(obj) {
obj.number++
console.log(obj.number);
return obj.number < 5;
}

到目前为止,这是我的代码--但我只得到了1。在那之后,代码不再继续。我怎么才能解决这个问题?

EN

Stack Overflow用户

发布于 2022-06-07 12:23:21

下面演示了两个定时器的并发运行。每个计时器回调将根据其counter变量记录一个值。第一个定时器的工作间隔为500毫秒,第二个定时器的工作间隔为1000毫秒。

请注意逻辑OR运算符(||)的使用:

如果运算符的左边计算为一个真实值,则为

  • (即.),则不评估右侧(定时器取消)。

  • 如果运算符的左侧计算为假值,则计算右侧(取消),计时器停止。

代码语言:javascript
复制
const startTimer = (callback, interval = 1000) => {
    let counter = 1
    const tick = () => 
        (callback(counter++) || clearInterval(intervalId))
    const intervalId = setInterval(tick, interval)    
}

const countToTen = (counter) => {    
    console.log(counter)
    return counter < 10
}

const abcs = (counter) => {    
    // 65 is the start of the Latin Alphabet
    console.log(String.fromCharCode(64 + counter)) 
    return counter < 10
}

startTimer(countToTen, 500)
startTimer(abcs)

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72530874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档