gpt4 book ai didi

javascript - 具有参数的函数上的clearTimeout

转载 作者:行者123 更新时间:2023-11-28 15:39:31 25 4
gpt4 key购买 nike

我正在编写一个聊天应用程序,可以同时打开多个聊天窗口。每次打开窗口时,我都会在函数 update_chat() 上调用 setInterval,以更新单个聊天窗口。我将 chat_id 传递给 update_chat()

setInterval("update_chat("+chat_id+")",4000);

chat_id 只是聊天的 ID。因此,我可以让函数 update_chat 以不同的时间间隔运行多次,具体取决于打开的聊天数量。开始聊天工作正常。

我的主要问题是如何停止上面的间隔。我不想停止所有间隔,只想停止与特定聊天相关的间隔。我试过这个

clearInterval("update_chat("+chat_id+")");

但它没有做任何事情。

<小时/>

我试过了

var chat_intervals=[]

chat_intervals[chat_id]=setInterval("update_chat("+chat_id+")",4000);

clearInterval(chat_intervals[end_id]);

它没有停止间隔

最佳答案

clearInterval( docs ) 将间隔 ID 作为参数来了解要清除的间隔。 setInterval ( docs ) 在调用时返回一个间隔 ID,因此您可以将其存储在 var 中,并在需要清除该间隔时将其传递给 clearInterval

//start the interval, store its ID
var interval_id = setInterval( function () { /* do something*/ }, 1000);

//clear the interval
clearInterval(interval_id);

请注意,setTimeout ( docs ) 和 clearTimeout ( docs ) 以相同的方式相互配合。

另请注意,虽然 setInterval 可以采用字符串参数作为要运行的函数,但它也可以采用实际函数(这是高度推荐的)。所以你的代码可以更好地写成:

var update_chat_interval = setInterval(function () {
update_chat(chat_id);
}, 4000);

// to clear it later:
clearInterval(update_chat_interval);

关于javascript - 具有参数的函数上的clearTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24335017/

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