首页 > 解决方案 > 跟踪 useState 的第二个结果

问题描述

我们有以下场景。一个按钮触发一个回调方法,该方法做一些工作,然后休眠一秒钟,然后更新一个状态:

const Component = () => {
  const [myState, setMyState] = useState(0);

  const callback = useCallback(async () => {
    // do something
    ...
    // sleep for a second
    await new Promise(resolve => setTimeout(resolve, 1000));
    // set state
    setMyState(1);
  }, []);

  return (
    ...
      <button onClick={callback} />
    ...
  );
}

我有两个问题:

我已阅读Dan Abramov 关于 setInterval 的评论。但是,在我看来,他正在谈论另一个问题。在他的示例中,超时总是很短,并且何时重置间隔无关紧要。在我的用例中,这确实很重要。该方法必须运行到最后。

标签: reactjsreact-hooks

解决方案


推荐阅读