как рассчитать резюме и приостановить количество данных в индикатор выполнения - PullRequest
0 голосов
/ 14 февраля 2019

Как рассчитать полученные данные после паузы и возобновления функции.

Я работаю над загрузкой файлов, включая паузу и возобновление загрузки.

Это делает паузу в порядке, но когда явозобновите это, это не идет к 100%.останавливается до 100%

  function download_file(event, filename) {
          req2 = request({
            method: 'GET',
            uri: fileURL
          });
            var out = fs.createWriteStream(finalPath);
            req2.pipe(out);
            req2.on('response', function(data) {
total_bytes = parseInt(data.headers['content-length']);
    progressBar.max = total_bytes;
    total_size = total_bytes;
            });
            req2.on('data', function(chunk) {
                    received_bytes += chunk.length;
 console.log(received_bytes);
progressBar.value = received_bytes;
display.innerText = Math.round((progressBar.value / progressBar.max) * 1000) / 10 + '%'
              }
            });
        };

    function pause22() {
      console.log('pause function called');
      req2.pause();
    }

        function resume22() {
          console.log('RESUME function called');
 progressBar.max=progressBar.max-progressBar.value;
  console.log(progressBar.max);
  console.log(progressBar.value);
   progressBar.value = received_bytes;
   received_bytes= progressBar.value;
  req2.resume();
        }

1 Ответ

0 голосов
/ 14 февраля 2019

Если вы хотите продолжить с того места, на котором остановились в процессе загрузки, и что вы храните 'total_bytes' и 'receive_bytes' в качестве глобальных переменных, тогда ваш индикатор выполнения просто восстановится для них.Ваше резюме22 должно быть ...

function resume22() {
      console.log('RESUME function called');
      progressBar.max=total_bytes;
      console.log(progressBar.max);
      progressBar.value = received_bytes;
      console.log(progressBar.value);
      req2.resume();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...