Chrome no muestra el archivo como descargado hasta que se envían 8 bytes (Firefox sí)

Deseo tener un método http que envíe el archivo al usuario, pero necesita algo de tiempo (por ejemplo, 4 segundos) para generar el contenido del archivo.

Lo que quiero es que el navegador muestre instantáneamente el archivo como descargado. Pero Chrome solo muestra el archivo como descargado después de enviar 8 bytes. No sé los primeros 8 bytes de mi archivo por adelantado. Firefox, sin embargo, muestra la descarga al instante.

Este es el ejemplo (en Express, pero la tecnología de backend no importa, tuve el mismo ejemplo en ASP.Net):

const express = require('express');

const app = express();
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))

app.get('/:type?', async (req, res) =>  {
  res.set("Content-type", "application/octet-stream");
  res.set("Content-Disposition", "attachment;filename=\"Report.txt\"");

  res.write('1234567'); 
  if (req.params.type == "instant")
    res.write('8'); //if I send 8 bytes before sleep, file downloading appears instantly
  await sleep(4*1000);

  res.write('9');
  res.end();
});

app.listen(3000, () => {
  console.log('server started');
});

https: //repl.it/@ArturDrobinskiy/AllJumboSpellchecker? language = nodejs

¿Hay una manera de resolver esto

URL de ejemplo con el código anterior:

e envían @ 7 bytes, la descarga no es instantáneae envían @ 8 bytes, la descarga comienza instantáneamente

Respuestas a la pregunta(1)

Su respuesta a la pregunta