创建一个变量保留上一次值

Posted by CodingWithAlice on August 15, 2022

创建一个变量,保留上一次值

背景:

在回滚部署成功后,我需要提示「回滚成功」

当前部署状态通过在前端页面轮询实现

我的实现方案:通过监听 status 的变化,异步实现 lastStatus 的变化,可以在查询 status 和 lastStatus 的时候,得到 status 为 success 和 lastStatus 为 pending 的一个时机,弹出弹窗:

useEffect(() => {
    setLastStatus(status);
}, [status]);
问题:

虽然能够通过 setXXX 是异步修改 lastStatus 的值的特性,让外部接口查询状态的时候,拿到一个弹出「回滚成功」的时机;

但是实际上,在下一次请求前,status 和 lastStatus 都是 一个状态,lastStatus 并没有按照它的命名,拿到部署状态的上一次状态,而是实时跟着 status 在变化

解决方案:

保留变量值版本的逻辑 –> 在修改这个变量之前,将变量的值保存

setLastStatus(status);
setStatus(res.status);