reactjs - 如何在 react 中顺序调用函数?

标签 reactjs react-redux

我有一个表单,当我提交时,它应该一个接一个地调用 2 个函数,然后运行一个依赖于上述 2 个函数的条件。

处理程序在您按下按钮时启动,但是您如何确保它们按顺序运行并等待前一个的结果?

  const handlerNextPage = () => {
    controlValidInputs();
    handlerSetValues();

    inputsData.pages.isValid.page1 && navigate("step2");
  };

谢谢

最佳答案

这取决于您的函数的性质以及您在其中所做的事情。 如果它们执行所有同步任务,它们将被顺序调用并依次执行,这是由于 JavaScript 引擎事件循环的同步单线程特性。

但是

如果在其中一个函数中您正在执行一些异步任务,例如 http fetch 或 setTimout,则下一个函数将在前一个异步操作尚未执行时执行。要处理这些情况,您需要使用 promise 。

在你的情况下,我认为你的第一个函数 controlValidInputs() 中没有任何异步任务,而在第二个函数中,我假设你正在执行一些 React setState,React setState 是异步的,但不能用 promises 处理,您需要使用 useEffect Hook 在 React 状态更新后延迟操作。

关于reactjs - 如何在 react 中顺序调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71727219/

相关文章:

reactjs - 调用渲染与绘制 DOM?

javascript - React 改变孙子的 props : object is not extensible/tree traversing react children

reactjs - 如何使我的 React 上下文提供程序类型安全

javascript - React-倒计时-现在不在渲染上更新

reactjs - 自动完成未按预期呈现 Material UI

javascript - React JS TreeView 显示api响应

javascript - React 路由器参数和查询不起作用

javascript - 商店更改时更新组件

reactjs - 我什么时候应该使用 Redux Sagas?

javascript - Create React App 提供的 react-scripts 包需要依赖 :