Я хочу создать простую debounce
функцию, которая будет выполняться после завершения данного жизненного цикла запроса Node.js.
Давайте создадим это простое приложение Node / Express:
const debounce = require('debounce')
const express = require('express')
const app = express()
const port = 4000
global.i = 0;
app.get('/test', (req, res) => {
debounce(() => { global.i++; }, 3000, false);
res.send(global.i.toString());
});
app.listen(port, () => console.log(`Listening on port ${port}`));
Всякий раз, когда я вызываю http://localhost:4000/
, я получаю i
в качестве ответа.
Я ожидаю, что до тех пор, пока я вызываю эту конечную точку с интервалом в 3 секунды, обратный вызов функции debounce не будет срабатывать, и i
будет 0;и когда я подожду более 3 секунд, он запустится, и в следующий раз, когда я вызову конечную точку, я получу обновленное значение (скажем, 1
).
Но этого не происходит.Ответ заканчивается, и код «мертв» - обратный вызов функции debounce
никогда не запускается.
Какой правильный способ заставить вещи продолжать работать в фоновом режиме даже после цикла запрос / ответзакончил?