Javascript 需要帮助在angularjs的zip文件中下载多个图像吗

Javascript 需要帮助在angularjs的zip文件中下载多个图像吗,javascript,angularjs,node.js,jszip,Javascript,Angularjs,Node.js,Jszip,我的代码是根据JSZIP2X工作的,但现在显示错误“此方法已在JSZIP3.0中删除,请查看升级指南。”。我已经检查了升级的指南,但我的代码仍然不起作用。我需要帮助下载多个图像在zip文件在angularjs。提前谢谢 var zip = new JSZip(); var count = 0; var zipFilename = "zipFilename.zip"; var urls = [

我的代码是根据JSZIP2X工作的,但现在显示错误“此方法已在JSZIP3.0中删除,请查看升级指南。”。我已经检查了升级的指南,但我的代码仍然不起作用。我需要帮助下载多个图像在zip文件在angularjs。提前谢谢

  var zip = new JSZip();
            var count = 0;
            var zipFilename = "zipFilename.zip";
            var urls = [
                'http://54.190.15.249/photo/1476967612xyKgSfAlgHEHSt49LfnmvVw3MWTVq4.png',
                'http://54.190.15.249/photo/1476967612xyKgSfAlgHEHSt49LfnmvVw3MWTVq4.png',
                'http://54.190.15.249/photo/1476967612xyKgSfAlgHEHSt49LfnmvVw3MWTVq4.png'
            ];

            urls.forEach(function(url){
                var filename = "filename";
                // loading a file and add it in a zip file
                JSZipUtils.getBinaryContent(url, function (err, data) {
                    if(err) {
                        throw err; // or handle the error
                    }
                    zip.file(filename, data, {binary:true});
                    count++;
                    if (count == urls.length) {
                        var zipFile = zip.generate({type: "blob"});
                        saveAs(zipFile, zipFilename);
                    }
                });
            });

错误来自
zip.generate
。。。已在JSZip v3中删除。就像上面说的,你需要用它来回报承诺

在您的情况下,您可以编写一个函数来包装
JSZipUtils.getBinaryContent
,并返回结果承诺(来自):

然后,对于每个url,将其转换为下载内容的承诺,并将其添加到zip对象中(如:


请参阅完整示例。

这不是一项“为我编写代码”服务…您是否。。。查看升级指南了吗?哈哈。不……@TZHX是的,我已经检查过了,但我能理解它,这就是为什么在这里寻求帮助
/**
 * Fetch the content and return the associated promise.
 * @param {String} url the url of the content to fetch.
 * @return {Promise} the promise containing the data.
 */
function urlToPromise(url) {
    return new Promise(function(resolve, reject) {
        JSZipUtils.getBinaryContent(url, function (err, data) {
            if(err) {
                reject(err);
            } else {
                resolve(data);
            }
        });
    });
}
urls.forEach(function(url){
  var filename = url.replace(/.*\//g, "");
  zip.file(filename, urlToPromise(url), {binary:true});
}
zip.generateAsync({type:"blob"}).then(function (zipFile) {
  saveAs(zipFile, zipFilename);
});