提问人:713sean 提问时间:1/10/2023 最后编辑:713sean 更新时间:1/10/2023 访问量:41
如何为这两个函数提供对共享数据的访问权限?
How can I give these two functions access to shared data?
问:
我有三个函数,和 。 触发计算密集型进程 。 应该尽早停止该过程。handleSubmit
handleCancel
solve
HandleSubmit
solve
handleCancel
我的简化代码如下所示:
function handleSubmit() {
computeHeavyProcess();
}
function handleCancel() {
// not sure what to put here, or how to design this
}
function solve() {
while (computationNotDone) {
// do computations
setSolutionState(resultOfCurrentComputations); // update React state every iteration
await sleep(0); // unblock UI by chunking compute
}
}
我想进行以下互动:
- 当用户单击触发器时,计算开始。
handleSubmit
- 计算运行,每隔一段时间更新一次状态,对计算进行分块并允许 UI 响应
- 如果用户点击触发器,则计算过程被终止。
handleCancel
一种方法是使用一个全局变量 ,调用会将其设置为 false。然后,在里面,我可以检查.allowedToRun
handleCancel
solve
while (computationNotDone && allowedToRun)
但是,我不想使用全局变量,因为我认为这表明我的代码设计得很差。
关于如何在没有全局变量的情况下设计这个系统的任何建议,我将不胜感激。
另外,我想导入 ,因此如果不将模块级变量包装在对象中,我就不能使用它,这是我想避免的。solve
答: 暂无答案
评论
computationNoDone
solve
setSolutionState
useState