我正在进行一个全栈项目,我需要一种方法来实现以下场景:
在用户提交事件时:
- 将请求发布到后端
- 当服务器接收到请求时。,它开始执行某些功能
- 后端应循环/无限期地运行所述函数,直到后端收到后续请求,该请求指示服务器在函数完成当前迭代后停止执行该函数
我知道一定有办法解决这个问题,但我还没能想出如何将我的问题浓缩成我可以在谷歌上搜索的东西。
以下内容有望有助于传达我正在努力实现的目标:
let run_function = false;
app.post('/start', (req, res) => {
run_function = true;
while (run_function)
the_function(req.body);
}
app.get('/stop', (req, res) => {
run_function = false;
}
似乎是setInterval((/clearInterval(
let handle
// Default 200ms interval
const startLoop = (body, interval = 200) => {
clearInterval(handle) // stop any previous loops
handle = setInterval(the_function, interval, body)
}
app.post("/start", (req, res) => {
startLoop(req.body)
res.send("Started")
})
app.post("/stop", (req, res) => {
clearInterval(handle)
res.send("Stopped")
})
let LoopInterval = null;
app.post('/start', (req, res) => {
LoopInterval = setInterval(() => {
the_function(req.body);
}, 0);
});
app.get('/stop', (req, res) => {
clearInterval(LoopInterval)
});