vue中多图上传时如何异步压缩图片?

我用的是vux+cordova进行开发的。

需要从相册选取图片,在手机端以base64做缩略图,用canvas压缩,然后以blob形式上传.
代码如下:

reader.onloadstart = function() {
            
          };
reader.onprogress = function(e) {
            
          };
reader.onload = function(e) {
            

            var src = e.target.result;

            let data;
            var img = new Image();
            img.src = src;

            img.onload = function() {
              if (src.length <= 100 * 1024) {
                data = src;
              } else {
                data = self.compress(img);
              }

              uploader_file.setAttribute(
                "style",
                `background-image:url(${src})`
              );
              self.filesArr.push(self.dataURItoBlob(data));
            };
          };
          reader.readAsDataURL(file);
        }
      });
      
      
问题:如果快速选取多张图片,手机就会卡死。
我觉得应该用异步压缩,但不知道如何写?
阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题