背景: React代码如下 import { useState } from 'react'; export default function App() { const [count, setCount] = useState(0); const handleClick = () => { setCount(count + 1); setTimeout(() => { console.log(count, 'end'); // 还是 0! }, 5000); } return ( +1 {count} ); } setCount的更新是异步更新的,setTimeout也是异步的,为什么点击,console.log打印的是0,而不是1。 尝试: 尝试用普通js函数进行比较,js代码如下 function outerFunction() { let count = 0; function innerFunction() { console.log(count); } count = 1; // 将count更新为1 setTimeout(innerFunction, 5000); count = 2; } outerFunction(); console.log打印的是最新的值2。 疑问: 两段代码的打印结果不同,是什么原因呢?