"use strict"; // 1) get a promise of the content var promise = new JSZip.external.Promise(function (resolve, reject) { JSZipUtils.getBinaryContent("/jszip/test/ref/text.zip", function(err, data) { if (err) { reject(err); } else { resolve(data); } }); }); promise.then(JSZip.loadAsync) // 2) chain with the zip promise .then(function(zip) { return zip.file("Hello.txt").async("string"); // 3) chain with the text content promise }) .then(function success(text) { // 4) display the result $("#jszip_utils").append($("<p>", { "class": "alert alert-success", text: "loaded, content = " + text })); }, function error(e) { $("#jszip_utils").append($("<p>", { "class": "alert alert-danger", text: e })); });
<div id="jszip_utils"></div>
"use strict"; fetch("/jszip/test/ref/text.zip") // 1) fetch the url .then(function (response) { // 2) filter on 200 OK if (response.status === 200 || response.status === 0) { return Promise.resolve(response.blob()); } else { return Promise.reject(new Error(response.statusText)); } }) .then(JSZip.loadAsync) // 3) chain with the zip promise .then(function (zip) { return zip.file("Hello.txt").async("string"); // 4) chain with the text content promise }) .then(function success(text) { // 5) display the result $("#fetch").append($("<p>", { "class": "alert alert-success", text: "loaded, content = " + text })); }, function error(e) { $("#fetch").append($("<p>", { "class": "alert alert-danger", text: e })); });
<div id="fetch"></div>