Я написал пакет Node, который выполняет интенсивную обработку данных.Я могу наблюдать за прогрессом с помощью console.log
, но я бы хотел предоставить конечному пользователю какой-то способ мониторинга этого события.По сути, это все равно, что вернуть обещание, за исключением того, что вместо одного события then
оно будет иметь событие для каждого "шага", а затем окончательно разрешится с данными.
К сожалению, я не знаюДостаточно о потоках узлов (что, мне кажется, мне нужно), чтобы сделать это.Могу ли я получить несколько указателей?Как я могу создать поток, который обновляется каждый раз, когда, скажем, на 1% больше прогресса, а затем, наконец, выдает вычисленные данные?
РЕДАКТИРОВАТЬ: В качестве примера рассмотрим этот цикл:
for(let i = 0; i < N; i++) {
intensiveFunction();
console.log(`${i} of ${N} completed`);
}
Вместо этого я хочу
for(let i = 0; i < N; i++) {
intensiveFunction();
// send user a signal that i/N of the task has been completed
}