Оказывается, я был прав насчет потока. Я не мог прочитать его раньше, потому что для чтения потоковых данных требуется некоторый код на стороне клиента. Исходный код для чтения можно найти в примере ссылки, которую я разместил.
И поток выглядит следующим образом.
const it = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
app.get('/stream', (req, res) => {
let time = 100
for (const i of it) {
setTimeout(() => {
res.write(i)
}, time)
time += 2000
}
setTimeout(() => {
res.end()
}, time + 2000)
})