title: “async(type[, onUpdate])” layout: default section: api

Return a Promise of the content in the asked type.

Returns : A Promise of the content.

Since: v3.0.0

Arguments

nametypedescription
typeStringthe type of the result. More.
onUpdateFunctionan optional function called on each internal update with the metadata. More.

type option

Possible values for type :

  • base64 : the result will be a string, the binary in a base64 form.
  • text (or string): the result will be an unicode string.
  • binarystring: the result will be a string in “binary” form, using 1 byte per char (2 bytes).
  • array: the result will be an Array of bytes (numbers between 0 and 255).
  • uint8array : the result will be a Uint8Array. This requires a compatible browser.
  • arraybuffer : the result will be a ArrayBuffer. This requires a compatible browser.
  • blob : the result will be a Blob. This requires a compatible browser.
  • nodebuffer : the result will be a nodejs Buffer. This requires nodejs.

Note : when using type = “uint8array”, “arraybuffer” or “blob”, be sure to check if the browser supports it (you can use JSZip.support).

zip.file("image.png").async("uint8array").then(function (u8) {
    // ...
});

onUpdate callback

If specified, this function will be called each time a chunk is pushed to the output stream (or internally accumulated).

The function takes a metadata object which contains information about the ongoing process.

Metadata : the metadata are :

nametypedescription
percentnumberthe percent of completion (a double between 0 and 100)
zip.file("image.png").async("uint8array", function updateCallback(metadata) {
    console.log("progression: " + metadata.percent.toFixed(2) + " %");
}).then(function (u8) {
    // ...
})

Other examples

zip
.file("my_text.txt")
.async("string")
.then(function success(content) {
    // use the content
}, function error(e) {
    // handle the error
});