gpt4 book ai didi

Javascript:仅当尚未设置时才启动 setTimeout()

转载 作者:行者123 更新时间:2023-12-02 22:13:31 25 4
gpt4 key购买 nike

我有一个振动功能,我想每 3 秒左右执行一次,直到单击按钮为止我尝试做到这一点的方法是通过一个循环执行直到条件为假,当单击按钮时,条件设置为假。我可以在 while 循环中使用 sleep,然后调用 vibrate,但我想在单击按钮后立即中断,而不必等待 3 秒左右。

如果设备仍在振动,我正在尝试设置超时,但我不想连续设置超时,我只想一次设置一个超时,这样只有在未设置超时的情况下才会设置超时已经

this.vibrate()
while(this.state.isVibrating){
if (timeout has not been set){
setTimeout(this.vibrate(), 3000)
}
}
clearTimeout()

最佳答案

听起来 setInterval 是一个更好的选择。

let interval;

this.vibrate();

interval = setInterval(this.vibrate.bind(this), 3000);

然后您可以在单击按钮时执行一个可以清除间隔的函数:

function buttonClicked() {
clearInterval(interval);
}

只需确保 interval var 在 buttonClicked 函数的范围内即可。

关于Javascript:仅当尚未设置时才启动 setTimeout(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59472298/

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