代码之家  ›  专栏  ›  技术社区  ›  Madhukar Devale

读取zip文件内容并将其分配给局部变量

  •  1
  • Madhukar Devale  · 技术社区  · 6 年前

    const jsZip = require('jszip');
      jsZip.loadAsync(fileList[0]).then(function (zip) {
        Object.keys(zip.files).forEach(function (filename) {
          zip.files[filename].async('string').then(function (fileData) {
             this.fileData = this.fileData + '**$$##$$**' + fileData;
          });
        });
      });
    

    此处未定义“this”,因为它是在jszip上下文中执行的。也尝试过“jszip同步”,但没有成功。谢谢你的帮助。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jacob Barnes    6 年前

    把一切都改变 function (){} ()=>{} , Fat Arrow

    const jsZip = require('jszip');
      jsZip.loadAsync(fileList[0]).then((zip) => { // <----- HERE
        Object.keys(zip.files).forEach((filename) => { // <----- HERE
          zip.files[filename].async('string').then((fileData) => { // <----- HERE
             this.fileData = this.fileData + '**$$##$$**' + fileData;
          });
        });
      });
    

    不起作用的原因: 但是当你使用 function() {} , 通常它会丢失根元素的上下文,以维护

    你可以找到很多关于胖箭的文章,我只是 提供其中一个。

    构造函数,在严格模式函数调用中未定义,基对象 如果函数被称为“对象方法”等)。事实证明 More in detail