我正在做一個全堆疊專案,我需要一種方法來實作以下場景:
在用戶提交事件時:
- 一個請求被發布到后端
- 當服務器收到請求時,它開始執行一些功能
- 后端應該回圈/無限期地運行所述函式,直到后端收到一個后續請求,該請求指示服務器在函式完成其當前迭??代后停止執行該函式。
我知道一定有辦法解決這個問題,但我無法弄清楚如何將我的問題/問題濃縮成我可以通過谷歌搜索的東西。
以下內容有望幫助傳達我想要完成的作業:
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;
}
uj5u.com熱心網友回復:
似乎是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")
})
uj5u.com熱心網友回復:
let LoopInterval = null;
app.post('/start', (req, res) => {
LoopInterval = setInterval(() => {
the_function(req.body);
}, 0);
});
app.get('/stop', (req, res) => {
clearInterval(LoopInterval)
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/432049.html
標籤:javascript 节点.js 表示
