数组里有内容,但是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);

clipboard.png

应该如何正常读取它的length

阅读 15.6k
3 个回答
errorLoad(index){
        new Promise((resolve)=> {this.imageLoad();resolve()}).then(()=>{this.errorArr.push(index)})
    }

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

errorArr的第一个元素是0,length属性是1,这是console打出来的详情,最底下的0不知道你是怎么打出来的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题