es6实现图片全加载完再显示到网页

利用es6的promise的all方法来实现图片全加载好再显示到网页,下面上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function loadimg(src){
return new Promise(function(resolve,reject){
let img=document.createElement('img');
img.src=src;
img.onload=function(){
resolve(img);
}
img.onerror=function(err){
reject(err);
}
})
}
function showimg(imgs){
imgs.forEach(function(img){
document.body.appendChild(img);
})
}
Promise.all([loadimg('http://pic9.997788.com/pic_auction/00/09/38/10/au9381026e.jpg'),loadimg('http://t-1.tuzhan.com/10da2b1e266a/up1/l/2010-03-20/13/timeroy.tuzhan.com_4899c11261d643d088bda1ac5f570e56.jpg'),loadimg('http://img5.duitang.com/uploads/item/201212/14/20121214223133_jYzPn.jpeg')]).then(showimg);

demo看这里

promise的race可以实现只有有一张加载完就显示到网页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function loadimg(src){
return new Promise(function(resolve,reject){
let img=document.createElement('img');
img.src=src;
img.onload=function(){
resolve(img);
}
img.onerror=function(err){
reject(err);
}
})
}
function showimg(imgs){
document.body.appendChild(imgs);
}
Promise.race([loadimg('http://pic9.997788.com/pic_auction/00/09/38/10/au9381026e.jpg'),loadimg('http://t-1.tuzhan.com/10da2b1e266a/up1/l/2010-03-20/13/timeroy.tuzhan.com_4899c11261d643d088bda1ac5f570e56.jpg'),loadimg('http://img5.duitang.com/uploads/item/201212/14/20121214223133_jYzPn.jpeg')]).then(showimg);

点我看demo


es6实现图片全加载完再显示到网页
https://xypecho.github.io/2018/03/08/es6实现图片全加载完再显示到网页/
作者
很青的青蛙
发布于
2018年3月8日
许可协议