Я использую 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); }
});