如何在特定时间继续执行单个 Redux Actions

How to continue on a single Redux Actions for particular time

我一直在开发react native 应用程序,并且它与redux 相结合。我已经成功地实施了优惠券系统。我想实现的是,我想继续某个动作至少3秒。

动作如下:

export const onAcceptingCoupon = (value) => {
 return(dispatch) => {
    setTimeout(() => {
        dispatch({ type: APPLY_BUTTON_LOADING, payload: true });
        }, 50000);
    dispatch({ type: DISCOUNTED_PRICE, payload: value });
    dispatch({ type: APPLY_BUTTON_LOADING, payload: false });
  }
};

所以,我一直在使用 React Native Elements 按钮。它有一个加载选项,它将在按钮文本前面显示一个加载程序。所以问题是当我按下上面提到的按钮时调用了操作。

由于我需要的数据已经被获取,我只想让加载程序至少激活 3 秒。这样,用户就可以了解正在发生的事情。

所以,我尝试使用 setTimeout 但没有任何反应。它只是转移到下一次派遣。

如何手动停止调度以移动到下一个调度,直到特定秒数?

我觉得你的订单有点乱。你想先开始加载,然后在一段时间后停止加载程序。或许把顺序改成这样会让你获得更大的成功。

export const onAcceptingCoupon = (value) => {
 return(dispatch) => {
    // show the loader
    dispatch({ type: APPLY_BUTTON_LOADING, payload: true });

    // put the code that should execute after 50000 inside the setTimeout
    setTimeout(() => {
        dispatch({ type: DISCOUNTED_PRICE, payload: value });
        dispatch({ type: APPLY_BUTTON_LOADING, payload: false });
        }, 50000);
    }
};

setTimeout 不是阻塞,在它之后写的代码会正常执行。它只是导致超时中的代码在时间段过去后执行。