javascript - 如何在 useEffect 中管理两个函数

标签 javascript reactjs asynchronous use-effect

我正在使用 useEffect 来获取数据。在我的 React 使用效果中,我在同一个 useEffect 中有一个函数 profileApprove(false) 和一个 refresh()。我不希望在 profileApprove(false) 完成之前开始刷新。目前,我有一个 setTimeOut 来为我处理对 profileApprove 的等待。我通过 setTimeOut 获得了我想要的结果,但不确定如何正确处理。

export default function Profile() {
    const {
        profileApproved
    } = profileContext();
    function refresh() {
        dispatch({ type: "FECTH_PROFILE", payload: { loading: true } });
    }
    React.useEffect(() => {
        profileApproved(false);
        setTimeout(() => {
            refresh();
        }, 1000);
    }, []);

最佳答案

您的 profileApprove 方法在完成后是否返回 promise ?如果是这样,请在调用刷新之前等待它

export default function Profile() {
    const {
        profileApproved
    } = profileContext();
    function refresh() {
        dispatch({ type: "FECTH_PROFILE", payload: { loading: true } });
    }
    React.useEffect(() => {
        profileApproved(false).then(refresh)
    }, []);

关于javascript - 如何在 useEffect 中管理两个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59689034/

相关文章:

javascript - 单击后CSS下拉菜单不关闭

javascript - 在第二次单击状态尚未使用您添加的 newItem 更新后添加标记?

android - 如何使用 RxJava-Android 等待多个嵌套异步调用?

javascript - 使用 Express 下载图像并使用 AJAX 在 Vue 中显示

javascript - 如何使用 XMLHttpRequest 正确读取二进制 float 据?

javascript - Highcharts 悬停错误 - 有视频演示

Javascript 替换 null

javascript - 另一种情况是组件的状态发生变化但组件似乎没有变化

javascript - 让我的 React 前端与我的 Express 服务器对话

javascript - AngularJS - 管理 $http 成功回调