猿问

antd upload组件的beforeupload的支持返回值的问题

我现在需要写一个方法,通过判断图片的长度和文件size来返回true或者false

console.log('file want upload ', file);

    let reader = new FileReader();

    reader.readAsDataURL(file);

    if (file.size > 1024*1024*3) { // 大于3M

      message.error('您上传的图片过大!请重新上传');

      return false;

    }

    let img = new Image();

    return (function () {

      let flag: boolean=true;

      ((flag) => {

        reader.onloadend = function(evt){

          img.src    = this.result;

          let width  = img.width;

          let height = img.height;

          console.log(width);

          console.log(height);

          if (width < 2000 && height < 2000) {

            flag = true;

          } else {

            flag = false

          }

        }

      })(flag)

      return flag;

    })()

但是这个很明显函数会先返回..所以onloadend里面修改flag的值实际上是无效的,我该怎样处理才能实现在onloadend之后再让外层函数返回结果呢?

料青山看我应如是
浏览 1216回答 1
1回答

动漫人物

引入异步流程控制啊。。promise什么的
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答