如何停止重复变量“0”;“设置间隔”;Javascript

如何停止重复变量“0”;“设置间隔”;Javascript,javascript,settimeout,setinterval,Javascript,Settimeout,Setinterval,我是JS的初学者,现在正在编写javascript应用程序 在这个应用程序中,当用户点击它时,有一个按钮,一扇门应该打开10秒钟,然后再关上 我使用“设置间隔”通过以下方式执行此功能: var rVars = [] rVars.push( {name:"door", val:1} ) // 1 for open , 0 for close _server.setRoomVariables(r, user, rVars) var params = {}

我是JS的初学者,现在正在编写javascript应用程序

在这个应用程序中,当用户点击它时,有一个按钮,一扇门应该打开10秒钟,然后再关上

我使用“设置间隔”通过以下方式执行此功能:

    var rVars = []
    rVars.push( {name:"door", val:1} ) // 1 for open , 0 for close

  _server.setRoomVariables(r, user, rVars)
  var params = {}
  params.user = user
  params.r = r
  
  myInterval = setInterval("TimeForClose", 20000, params)
这是负责在10秒后关闭车门的代码

function TimeForClose(params){

    var rVars = []
    rVars.push( {name:"door", val:0} )

  _server.setRoomVariables(params.r, params.user, rVars)}
这是成功的,但问题是我发现“TimeForclose”功能每10秒重复一次,这使得当另一个用户点击按钮,门为他打开时,第一个重复的功能仍然会为第二个用户关闭门,并且每个功能都会重复,等等

所以我读到我必须使用“清除间隔”或计时器来停止重复,但当我使用它时,它并没有停止重复,所以我认为我用错了

那么,停止重复的最好方法是什么?(我只希望当有人单击某个按钮时,该函数出现一次,然后停止)


我希望您能给我正确的代码语法

是的,正如您所说,您可以在关闭门窗后使用
clearInterval()
,尝试一次

如果您只需要执行一次,您可以使用 将setIntervalm更改为setTimeout

 myInterval =  setTimeout("TimeForClose", 20000, params)
该函数只执行一次。如果需要重复执行,请使用该方法


如果您需要根据某些外部事件重复执行和停止,您可以使用

尝试设置超时功能,而不是interval@Sagar请你根据上面的代码为我写代码好吗?我是Javascript的初学者,谢谢你,将setInterval替换为@Alpeto添加了一个answer@Sagar谢谢你的帮助,但是当我按照你说的那样做时,门现在根本关不上,所以你能告诉我如何使用clearInterval()吗?我应该确切地把它放在哪里?在一个新函数中或在哪里?使用新函数调用clearInterval(),在这里新函数必须在你的门窗关闭后调用我理解你,但请原谅我缺乏经验,我仍然是一个初学者。你能根据上面的代码编写吗?