不返回clearTimeout有哪些潜在后果?

问题描述 投票:0回答:1

问题是询问不返回JavaScript中clearTimeout()函数返回的值的潜在负面影响。

import { useEffect, useState } from 'react';

function MyComponent() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    const timerId = setTimeout(() => {
      setCount(count + 1);
    }, 1000);

    // this is my point of concern what are the negative effects of removing this cleartimeout 
    return () => clearTimeout(timerId);
  }, [count]);

  return (
    <div>
      <p>Count: {count}</p>
    </div>
  );
}

我正在跟踪文档,但很想知道为什么这个限制适合我们。

reactjs react-hooks
1个回答
0
投票

这是一个清理函数,用于正确管理计时器。如果没有这个,useEffect 中的逻辑可能会在前一个计时器被清除之前重新运行。因此,如果计时器并行运行,您可能会看到计数快速增加。而且还会导致内存泄漏。

而且,您不会从cleartimeout返回值,而是将其作为useEffect的清理函数返回。

© www.soinside.com 2019 - 2024. All rights reserved.