猿问

数组里有内容,但是length为0,如何解决

html:


<img :src="img" 

                v-for="(img,index) in imgList" 

                :key="index"

                @load = "imageLoad"

                @error = "errorLoad(index)"

            >


data() {

    return {

      errorArr : []

    };

  }

在img中有一个监听error事件


errorLoad(index){

        //加载失败时把失败图片删除

        this.imageLoad();

        this.errorArr.push(index);

    }

后面有一个图片加载完成的事件,打印errorArr的时候,却发现数组有内容但length为0


console.log(this.errorArr);

console.log(this.errorArr.length);


应该如何正常读取它的length


莫回无
浏览 5909回答 3
3回答

互换的青春

errorLoad(index){&nbsp; &nbsp; &nbsp; &nbsp; new Promise((resolve)=> {this.imageLoad();resolve()}).then(()=>{this.errorArr.push(index)})&nbsp; &nbsp; }

心有法竹

在控制台当你展开的时候才获取地址数据也就是说当你打印的东西是异步的,你在异步之前打印,控制台点击展开会获取最后的结果打印length为0证明打印的时候数组就是没有数据

千万里不及你

errorArr的第一个元素是0,length属性是1,这是console打出来的详情,最底下的0不知道你是怎么打出来的
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答