We can use process.stdout
to overwrite console output in Node.
As an example, if we wanted to track the progress of a long running loop, we could use something like the code below.
timer
simulates a long running process. This could be a time-consuming request.
const items = Array.from({ length: 100 }, (_, i) => i)
const timer = ms => new Promise(res => setTimeout(res, ms))
async function main() {
for (const [i, item] of items.entries()) {
await timer(100)
process.stdout.clearLine(0)
process.stdout.cursorTo(0)
process.stdout.write(`${i + 1}/${items.length}`)
}
}
main()