js等待全部图片加载完毕

const waitImgLoaded = async (root) => {
    const imgNodes = root instanceof HTMLImageElement ? [root] : root.querySelectorAll('img');
    let imgArr = Array.prototype.slice.call(imgNodes);  // NodeList转Array,Array才有map方法
    return await Promise.all(
        imgArr.map(img=> {
            new Promise(resolve=>{
                img.addEventListener('load',()=> resolve(img)) 
            })
        })
    )
}
// 等待this.$refs.outputContent元素节点中的所有图片
waitImgLoaded(this.$refs.outputContent).then((datas)=>{
  // do...
})

 

posted @ 2021-12-27 10:44  最好的年纪  阅读(854)  评论(0编辑  收藏  举报