Получить прогресс обещания в jszip-utils.js - PullRequest
0 голосов
/ 03 июля 2019

Я использую jszip-utils.js для загрузки zip-файла на мой веб-интерфейс с помощью функции JSZipUtils.getBinaryContent.Все работает отлично, но теперь я хочу иметь индикатор выполнения , показывающий, сколько времени потребуется, чтобы закончить загрузку.

Я посмотрел исходный код и обнаружил, что последний параметр функции JSZipUtils.getBinaryContent (путь, опции) содержит информацию, которую я хочу (функция прогресса).

  • @param {string} path Путь к ресурсу для GET.
  • @ param {function | {callback: function, progress: function}} options
  • @ return {Promise | undefined} Еслиобратный вызов не передается, тогда обещание возвращается

Далее я вижу исходный код скрипта:

if(options.progress) {
 xhr.onprogress = function(e) {
  options.progress({
   path: path,
   originalEvent: e,
   percent: e.loaded / e.total * 100,
   loaded: e.loaded,
   total: e.total
  });
 };
}

В настоящее время у меня есть приложение:

new JSZip.external.Promise(function(resolve, reject) {
  JSZipUtils.getBinaryContent(tilesZipPath, function(err, data) {
    if (err) {
      reject(err);
    } else {
      resolve(data);
    }
  });
}).then(function(data) {
  return JSZip.loadAsync(data);
});

Как я могу получить эту информацию, чтобы обновить значение индикатора выполнения html при вызове JSZipUtils.getBinaryContent?

решено: Для всех, кто ищет здесьэто решение.Эта библиотека потрясающая, хотелось бы, чтобы в ней было больше документации.

JSZipUtils.getBinaryContent(tilesZipPath, {
  callback: function(err, data) { if (err) { reject(err); } else { resolve(data); } },
  progress: function(e) { console.log(e); }
});
...