Потоковый ответ Nodejs с использованием модуля запроса - PullRequest
0 голосов
/ 16 октября 2018

Я загружаю порцию файла (размер порции 600) с 10 серверов. Как я могу изменить приведенный ниже код для потокового ответа, например, чтобы он считывал 60 байтов из ответа первого сервера, затем 60 байтовот ответа второго сервера, и продолжайте до тех пор, пока я не получу 10. Я хочу потоковую линию этого процесса.

прямо сейчас мой код берет 600 байтов с первого сервера и помещает в файл, а затем берет следующие 600 байтов и добавлений и так далее, но я хочу получить первые 600 байтов, но только для чтения сначала 60, затем извторой ответ сервера читал 60 байтов и так далее.

  for (a=0; a< array.length; a++){   
    var remainder = a%4
    var uri = urls[remainder]+'/v1/file/download/'+'?path='+filePath
    console.log(uri)
    if ( a== partNum){
        if( a==10 && partNum ==10){
          break;
        }
    await new Promise(function (resolve, reject) {
      request.get(uri
      , function (error, response, body) {
        }
      )
      .on('data', function(data,error) {
        if (error){
          reject(error)
        } else {
        console.log('decoded chunk: ',data.length)
        }
        // decompressed data as it is received
      })
      .on('response', function(response) {
        // unmodified http.IncomingMessage object
        response.on('data', function(data) {
          // compressed data as it is received
          console.log('received ' + data.length + ' bytes of compressed data')
        })
      });
    });
    } else {
      console.log("handle error case")
    }
  }
...