繁体   English   中英

如何停止 setInterval?

[英]How can I stop setInterval?

我正在尝试通过调用 clearInterval 来清除 setInterval。 但是,我在函数内部调用 setInterval 函数。 所以我想通过clearInterval触发setInterval中的参数,但我不知道如何到达这个东西。 我所说的令人困惑,所以我只想向您展示代码:

 function getAPI() { const polling = () => { if (convert !== undefined) { axios .post("/realtime", { GET_API_URL: convert.GET_API_URL, Headers1_key: convert.Headers1_key, Headers1_Value: convert.Headers1_Value, Headers2_key: convert.Headers2_key, Headers2_Value: convert.Headers2_Value, Headers3_key: convert.Headers3_key, Headers3_Value: convert.Headers3_Value, }) .then(response => { setRandom(response.data); }) .catch(error => { console.log(error); }); } else { alert("try again."); } }; setInterval(polling, convert.API_Read_Speed); } const init = () => { clearInterval(polling); // i want to call polling and i want to stop the axios posting };

根据您的评论,您似乎需要停止投票以做出反应。 你可以使用useRef钩子来保持区间的引用并在你喜欢的时候清除它。

 useEffect(() => {
  interval.current = setInterval(() => {
    ...
  }, ms)

 }, [input]);

 const closeConnection = () => {
  clearInterval(interval.current);

 }

您可以将setInterval存储在变量中并像这样访问它。
例子:

let interval;

function foo() {
   interval = setInterval(() => {
      ...
   }, ms)
}

function bar() {
   clearInterval(interval);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM