如何在特定时间继续执行单个 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
不是阻塞,在它之后写的代码会正常执行。它只是导致超时中的代码在时间段过去后执行。
我一直在开发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
不是阻塞,在它之后写的代码会正常执行。它只是导致超时中的代码在时间段过去后执行。