之前写的计算MD5上传文件还有些缺陷,当时的代码大概是下面这个样子,但是放到vuecli环境里面后,onload方法里找不到axios(之前的ajax)对象了,所以只能想办法在onload方法外进行发送,这样就需要等待onload方法完成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getMd5(){
    let result;//用于接收计算结果
    fileReader.onload = function (e) {
        //在另一个线程上执行,主线程继续执行
        if(计算完成){
                result=计算结果;
                ajax({
                    // 我tm直接发送
                 })
          }
        else continue;
    };
    // 此时计算结果的线程还未结束,result还没有值
    return result;
}

介绍 Promise

if中的flag为自己设置的完成或失败条件

我自己理解的大概就是上面这个样子(功能实现了,我也懒得深入了解)

嗯,完了